NSArray
従属:NSObject(protocol)、NSMutableCopying,NSSecureCoding,NSFastEnumeration,NSCopying
フレームワーク:OS X 10.0 以降の Foundation。関連項目...
概要(NSArray)
NSArray とそのサブクラスの NSMutableArray は、配列 と呼ばれるオブジェクトの整列した集合を管理します。NSArray は、静的な配列を作成し、NSMutableArray では動的な配列を作成します。オブジェクトの整列したコレクションを必要とするときに、配列を使用できます。
NSArray は、Core Foundation の写し、CFArrayRef と「通話無料で繋がって」います。通話無料で繋がる事の詳細については、「通話無料で繋がる事」 を参照してください。
サブクラス化の注意事項
NSArray をサブクラス化する理由は一般的に小さいです。クラスには、それがオブジェクトの整列したコレクションを、維持するように設計されており、うまく行います。しかし、カスタムの NSArray オブジェクトが便利になる状況があり、いくつかの可能性があります:
オーバーライドするメソッド
NSArray のサブクラスは全て、原始的なインスタンス·メソッドである count や objectAtIndex: を上書きしなければなりません。これらのメソッドは、コレクションの要素を提供する支援倉庫で操作する必要があります。この支援倉庫のために、静的な配列、標準の NSArray オブジェクト、または他のいくつかのデータ型やメカニズムを使用できます。また、部分的または完全に、別の実装を提供したい、他の NSArray のメソッドをオーバーライドすることもできます。
サブクラスが管理している支援倉庫に適している、サブクラスのイニシャライザーを実装することをお勧めします。そうした場合、イニシャライザーは、init または initWithObjects:count: いずれかであり、NSArray クラスの指定イニシャライザーのいずれか一つを呼び出す必要があります。NSArray のクラスは NSCopying、NSMutableCopying と NSCoding プロトコルを採用しています。NSArray のカスタムサブクラスは、これらのプロトコルのメソッドを必要に応じてオーバーライドします。
NSArrayは、クラスクラスタ用のパブリック・インターフェイスであり、サブクラスの相続者であることを覚えておいてください。サブクラス用の保管場所を提供し、直接その保管場所に基づいて行動するプリミティブ・メソッドを実装する必要があります。
サブクラス化の代替手段
NSArray のカスタムサブクラスを作成する前に、NSPointerArray と、対応する Core Foundation のタイプ、CFArray Reference を調査して下さい。 NSArray と CFArray は、「通話無料で繋がっている」ので、あなたは(適切なキャストで) コード内の NSArray オブジェクトを CFArray オブジェクトで置き換えできます。それらは対応している種類ですが、CFArray と NSArray は、同一のインターフェイスや実装を持っておらず、時々 NSArray では簡単にできないことを CFArray で行うことができます。例えば、CFArray は、カスタム保持·放出動作を実装するための、そのうちのいくつかの呼び出しのセットを提供します。これらの呼び出しに NULL で実装を指定する場合は、簡単に非保持配列を取得できます。
既存のクラスのサプリメントを追加したい行動の場合は、NSArray 上で、カテゴリを書くこともできます。ですがこのカテゴリは、使用する NSArray のすべてのインスタンスに対して有効であり、これは意図しない結果になる可能性があることを、覚えておいてください。あるいは、目的の動作を達成するために合成物を使用することもできます。
タスク
配列の作成
+ array
空の配列を作成し、返します。
宣言
<< OBJECTIVE-C >>
+(instancetype)array
戻り値
空の配列。
議論
このメソッドは、NSArray の mutable サブクラスで使用されています。
利用可能
OS X v10.0 以降で利用可能
以下も見よ
+ arrayWithArray:
他の与えられた配列に含まれるオブジェクトを含む配列を作成し、返します。
宣言
<< OBJECTIVE-C >>
+ (instancetype)arrayWithArray:(NSArray<ObjectType> *)anArray
パラメータ
anArray | 配列。 |
戻り値
anArray 内のオブジェクトを含む配列。
利用可能
OS X v10.0 以降で利用可能
以下も見よ
+ arrayWithContentsOfFile:
与えられたパスで指定されたファイルの内容を含む配列を作成し、返します。
<< OBJECTIVE-C >>
+ (NSArray<ObjectType>)arrayWithContentsOfFile:(NSString *)aPath
パラメータ
aPath | writeToFile:atomically: メソッドで生成される配列の文字列表現を含むファイルへのパス。 |
戻り値
aPath で指定されたファイルの内容を含む配列。ファイルの内容が配列に解析できない場合や、ファイルを開けない場合、nil を返します。
議論
aPath で識別されるファイル内の配列表現は、プロパティリストオブジェクト(NSString、NSData、NSDate、NSNumber、NSArray、または NSDictionary オブジェクト) だけが含まれていなければなりません。詳細については、プロパティリストプログラミングガイド を参照してください。この配列に含まれるオブジェクトは、配列が可変であっても、不変です。
利用可能
OS X v10.0 以降で利用可能
以下も見よ
+ arrayWithContentsOfURL:
与えられた URL で指定された内容を含む配列を作成し、返します。
宣言
<< OBJECTIVE-C >>
+ (NSArray<ObjectType> *)arrayWithContentsOfURL:(NSURL *)aURL
パラメータ
aURL | writeToURL:atomically: メソッドによって生成される配列の文字列表現を含むファイルの場所。 |
戻り値
aURL で指定した内容を含む配列。場所の内容が配列に解析できない場合や場所を開くことができない場合、nil を返します。
議論
aURL で識別される場所の配列表現は、プロパティリストオブジェクト(NSString、NSData、NSArray、または NSDictionary オブジェクト)だけが含まれていなければなりません。この配列に含まれるオブジェクトは、配列が可変であっても、不変です。
利用可能
OS X v10.0 以降で利用可能
以下も見よ
+ arrayWithObject:
与えられたオブジェクトを含む配列を作成し、返します。
宣言
<< SWIFT >>
convenience init(object anObject: AnyObject)
<< OBJECTIVE-C >>
+ (instancetype)arrayWithObject:(ObjectType)anObject
パラメータ
anObject | オブジェクト。 |
戻り値
単一の要素 anObject を含む配列。
議論
あるいは、与えられたオブジェクトを含む配列を作成するための Objective-C と Swift での配列リテラル構文を使用できます。
<< OBJECTIVE-C >>
NSArray *array = @[@"Hello, world!"];
<< SWIFT >>
let array: NSArray = ["Hello, world!"]
利用可能
OS X v10.0 以降で利用可能
以下も見よ
+ arrayWithObjects:
引数リスト内のオブジェクトを含む配列を作成し、返します。
宣言
+ (instancetype)arrayWithObjects:(ObjectType)firstObj,
, ...
パラメータ
firstObj, ... | nil で終わるオブジェクトの、カンマ区切りのリスト。 |
戻り値
引数リスト内のオブジェクトを含む配列。
議論
以下のコードの例は、要素の異なる 3 つのタイプを含む配列を作成します。
-
<< OBJECTIVE-C >>
- NSDate *aDate = [NSDate distantFuture];
- NSValue *aValue = @(5);
- NSString *aString = @"hello";
- NSArray *array = [NSArray arrayWithObjects:aDate, aValue, aString, nil];
- let aDate = NSDate.distantFuture()
- let aValue = 5
- let aString = "hello"
- let array = NSArray(objects: aDate, aValue, aString)
<< SWIFT >>
あるいは、与えられたオブジェクトを含む配列を作成するための Objective-C と Swift で配列リテラル構文を使用できます。
<< OBJECTIVE-C >>
NSArray *array = @[@"alpha", @"bravo", @"charlie"];
<< SWIFT >>
let array: NSArray = ["alpha", "bravo", "charlie"]
利用可能
OS X v10.0 以降で利用可能
以下も見よ
+ arrayWithObjects:count:
与えられた C 言語の配列から、与えられた数のオブジェクトを含む配列を作成し、返します。
宣言
<< OBJECTIVE-C >>
+ (instancetype)arrayWithObjects:(const ObjectType _Nonnull[])objects count:(NSUInteger)count
パラメータ
objects | オブジェクトの C 言語の配列。 |
count | 新しい配列に含まれる、objects の C 言語配列からの値の数。この数は新しい配列数のカウントであり、それは負の値または objects の要素の数より大きくてはいけません。 |
戻り値
objects からの最初の count オブジェクトを含む新しい配列。
議論
要素は、objects に現れるのと同じ順序で新しい配列に追加されますが、インデックスの count の数を含めていません。たとえば、次のように:
- NSString *strings[3];
- strings[0] = @"First";
- strings[1] = @"Second";
- strings[2] = @"Third";
- NSArray *stringsArray = [NSArray arrayWithObjects:strings count:2];
- // strings array contains { @"First", @"Second" }
利用可能
OS X 10.0 以降で利用可能
以下も見よ
配列の初期化
- init 指定イニシャライザ
新しく割り当てられた配列を初期化します。
宣言
<< SWIFT >>
init()
<< OBJECTIVE-C >>
- (instancetype)init
戻り値
配列。
議論
immutable 配列は、この方法でで初期化された後は、変更できません。
このメソッドは、指定イニシャライザです。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- initWithArray:
与えられた配列に含まれるオブジェクトの中に配置することによって、新しく割り当てられた配列を初期化します。
宣言
<< SWIFT >>
convenience init(array array: [AnyObject])
<< OBJECTIVE-C >>
- (instancetype)initWithArray:(NSArray *)anArray
パラメータ
anArray | 配列。 |
戻り値
anArray 内のオブジェクトを含むように初期化される配列。返されるオブジェクトは、元の受信者とは異なる場合があります。
議論
immutable 配列は、この方法で初期化された後は、変更できません。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- initWithArray:copyItems:
配列用のデータ·オブジェクトのソースとして anArray を使用して、新しく割り当てられた配列を初期化します。
宣言
<< SWIFT >>
convenience init(array array: [AnyObject], copyItems flag: Bool)
<< OBJECTIVE-C >>
- (instancetype)initWithArray:(NSArray<ObjectType> *)array copyItems:(BOOL)flag
パラメータ
array | どの新しい配列を初期化するべきか、というオブジェクトを含む配列。 |
flag | YES の場合、オブジェクトのコピーを作成するため、array 内の各オブジェクトは、copyWithZone: メッセージを受け取り、オブジェクトは NSCopying プロトコルに準拠していなければなりません。管理されたメモリ環境では、これは、オブジェクトが他の方法で受け取る、retain メッセージの代わりです。オブジェクトのコピーは、その後、返される配列に追加されます。 NO の場合、管理されたメモリ環境なので、それは返される配列に追加されたときに、array 内の各オブジェクトは、単に retain メッセージを受信します。 |
戻り値
配列はオブジェクトを含むように初期化され、flag が YES の場合には、array 内のオブジェクトのコピーを返します。返されるオブジェクトは、元の受信者とは異なる場合があります。
議論
immutable 配列は、この方法で初期化された後は、変更できません。
copyWithZone: メソッドは、浅いコピーを実行します。あなたがちょっとした深さのコレクションを持っている場合は、flag パラメータに YES を渡し、表面下の最初のレベルの immutable コピーを実行して下さい。あなたが最初のレベルの mutable 配列に NO を渡した場合には影響を受けません。いずれの場合でも、どの深さのレベルの配列の不変性も影響を受けません。
利用可能
OS X 10.2 以降で利用可能
以下も見よ
- initWithContentsOfFile:
与えられたパスで指定されたファイルの内容で新しく割り当てられた配列を初期化します。
宣言
<< SWIFT >>
convenience init?(contentsOfFile path: String)
<< OBJECTIVE-C >>
- (NSArray<ObjectType> *)initWithContentsOfFile:(NSString *)aPath
パラメータ
aPath | writeToFile:atomically: メソッドで生成された配列の表現を含むファイルへのパス |
戻り値
aPath で指定された、ファイルの内容を含む初期化された配列か、またはファイルを開くことができないか、ファイルの内容が配列へと解析できない場合 nil を返します。返されるオブジェクトは、元の受信者とは異なる場合があります。
議論
aPath で識別されるファイル内の配列表現は、プロパティリストオブジェクト(NSString、NSData、NSArray、または NSDictionary オブジェクト) のみを含んでいる必要があります。この配列に含まれるオブジェクトは、配列が可変であっても、不変です。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- initWithContentsOfURL:
与えられた URL で指定された場所の内容で、新しく割り当てられた配列を初期化します。
宣言
<< SWIFT >>
convenience init?(contentsOfURL url: NSURL)
<< OBJECTIVE-C >>
- (NSArray<ObjectType> *)initWithContentsOfURL:(NSURL *)aURL
パラメータ
aURL | writeToURL:atomically: メソッドによって生成された配列の文字列表現を含むファイルの場所 |
戻り値
aURL で指定されたコンテンツを含むように初期化された配列。場所が開けない場合や場所の内容が配列に解析できない場合、nil を返します。返されるオブジェクトは、元の受信者とは異なる場合があります。
議論
aURL で識別される場所の配列表現は、プロパティリストオブジェクト(NSString、NSData、NSArray、または NSDictionary オブジェクト) のみを含んでいる必要があります。この配列に含まれるオブジェクトは、配列が可変であっても、不変です。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
宣言
NSArray.h
- initWithObjects:
引数リスト内の、オブジェクトの中に配置することで、新しく割り当てられた配列を初期化します。
宣言
<< OBJECTIVE-C >>
- (instancetype)initWithObjects:(ObjectType)firstObj
,...パラメータ
firstObj, ... | nil で終わるオブジェクトのカンマ区切りリスト。 |
戻り値
引数リスト内のオブジェクトを含むように初期化された配列。返されるオブジェクトは、元の受信者とは異なる場合があります。
議論
不変の配列は、この方法で初期化された後は、変更できません。
このメソッドは、指定イニシャライザです。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- initWithObjects:count: 指定イニシャライザ
与えられた C 言語の配列から、与えられたオブジェクトの数が含まれるように新しく割り当てられた配列を初期化します。
宣言
<< SWIFT >>
init(objects objects: UnsafePointer<AnyObject?>, count cnt: Int)
<< OBJECTIVE-C >>
- (instancetype)initWithObjects:(const ObjectType _Nonnull [])objects count:(NSUInteger)count
パラメータ
objects | C 言語型のオブジェクトの配列。 |
count | 新しい配列に含めるべき、objects の C 言語型の配列からの値の数。この数は新しい配列のカウントです - それは負の値または objects の要素数より大きくてはいけません。 |
戻り値
objects から最初の count のオブジェクトを含む、新しく割り当てられた配列。返されるオブジェクトは、元の受信者とは異なる場合があります。
議論
要素は、objects に表われるのと同じ順序で新しい配列に追加され、インデックスの count まで至りますが、それを含められません。
不変(immutable)の配列は、この方法で初期化された後は、変更できません。
このメソッドは、指定イニシャライザです。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
配列の照会
- containsObject:
指定されたオブジェクトが配列内に存在するかどうかを示すブール値を返します。
宣言
<< SWIFT >>
func containsObject(_ anObject: AnyObject) -> Bool
<< OBJECTIVE-C >>
- (BOOL)containsObject:(ObjectType)anObject
パラメータ
anObject | オブジェクト。 |
戻り値
配列の中に anObject がある場合は、YES、それ以外の場合は、NO。
議論
IsEqual: メッセージに引数として渡される、各配列の要素は、インデックス 0 から始まり、一致が見つかった場合、または配列の末端に到達するまで anObject に送り続けられます。(NSObject プロトコルで宣言された) isEqual が YES を返せば、オブジェクトは等しいと見なされます。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- count プロパティ
配列内のオブジェクトの数を返します。
宣言
<< SWIFT >>
var count: Int { get }
<< OBJECTIVE-C >>
@property(readonly) NSUInteger count
利用可能
OS X 10.0 以降で利用可能
- getObjects:
(OS X 10.6)配列に含まれるすべてのオブジェクトを、aBuffer へコピーします。
廃止の文
代わりに getObjects:range: を使用して下さい。
宣言
<< SWIFT >>
func getObjects(_ objects: AutoreleasingUnsafeMutablePointer<AnyObject?>)
<< OBJECTIVE-C >>
- (void)getObjects:(ObjectType _Nonnull [])aBuffer
パラメータ
aBuffer | 配列数の少なくともカウントのサイズのオブジェクトの C 言語の配列 |
議論
aBuffer に、配列内のすべてのオブジェクトをコピーするメソッド。バッファのサイズは、したがって、次の例に示すように、少なくともオブジェクト参照のサイズを掛けた配列の数でなければなりません(これは単なる一例であることに注意して下さい。配列の内容を、反復処理するために、単純にバッファを作成しないでください。)
- NSArray *mArray = // ...;
- id *objects;
- NSUInteger count = [mArray count];
- objects = malloc(sizeof(id) * count);
- [mArray getObjects:objects];
- for (i = 0; i < count; i++) {
-         NSLog(@"object at index %d: %@", i, objects[i]);
- }
- free(objects);
特別な考慮事項
潜在的にバッファオーバーランが発生する可能性があるため、旧式のメソッドは、安全ではありません。
利用可能
OS X 10.0 以降で利用可能
OS X 10.6 で旧式となりました。
以下も参照
- getObjects:range:
aBuffer に指定された範囲内にある配列に含まれるオブジェクトをコピーします。
宣言
<< SWIFT >>
func getObjects(_ objects: AutoreleasingUnsafeMutablePointer<AnyObject?>, range range: NSRange)
<< OBJECTIVE-C >>
- (void)getObjects:(ObjectType _Nonnull [])aBuffer range:(NSRange)aRange
- (void)getObjects:(id __unsafe_unretained [])objects range:()range
パラメータ
aBuffer | 少なくとも aRange で指定された範囲の長さのサイズのオブジェクトの C の配列。 |
aRange | 配列の境界内の範囲。 範囲の長さに加えた位置が配列の数よりも大きい場合、このメソッドは NSRangeException エラーを発生させます。 |
議論
このメソッドは、aRange で指定された範囲内の配列の aBuffer オブジェクトにコピーします。そのため次の例に示すように、バッファのサイズは、少なくてもオブジェクト参照のサイズを掛けた範囲の長さでなければなりません(これは全くイラスト向きです - 配列の内容を読み書きするためだけに、通常はバッファを作成しないでしょう)。
- NSArray *mArray = // an array with at least six elements...;
- id *objects;
- NSRange range = NSMakeRange(2, 4);
- objects = malloc(sizeof(id) * range.length);
- [mArray getObjects:objects range:range];
- for (i = 0; i < range.length; i++) {
-         NSLog(@"objects: %@", objects[i]);
- }
- free(objects);
利用可能
OS X 10.0 以降で利用可能
以下も見よ
+ arrayWithObjects:count:firstObject プロパティ
配列内の最初のオブジェクト。(読み取り専用)
宣言
<< SWIFT >>
var firstObject: AnyObject? { get }
<< OBJECTIVE-C >>
@property(nonatomic, readonly) ObjectType firstObject
議論
配列が空の場合、nil を返します。
利用可能
OS X 10.6 以降で利用可能
lastObject プロパティ
配列の最後のオブジェクト(読み取り専用)。
宣言
<< SWIFT >>
var lastObject: AnyObject? { get }
<< OBJECTIVE-C >>
@property(nonatomic, readonly) ObjectType lastObject
議論
配列が空の場合、nil を返します。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
removeLastObject (NSMutableArray)
- objectAtIndex:
指定されたインデックスに位置するオブジェクトを返します。
宣言
<< SWIFT >>
func objectAtIndex(_ index: Int) -> AnyObject
<< OBJECTIVE-C >>
- (ObjectType)objectAtIndex:(NSUInteger)index
パラメータ
index | 配列の範囲内のインデックス。 |
戻り値
インデックスに位置するオブジェクト。
議論
指数 index が配列の最後を超えている場合(つまり、index が count で返される値に等しいかそれ以上の場合には) NSRangeException のエラーが発生します。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- objectAtIndexedSubscript:
指定されたインデックスにあるオブジェクトを返します。
宣言
<< SWIFT >>
subscript (_ idx: Int) -> AnyObject { get }
<< OBJECTIVE-C >>
- (ObjectType)objectAtIndexedSubscript:(NSUInteger)idx
パラメータ
idx | 配列の範囲内のインデックス。 |
戻り値
index に位置するオブジェクト。
議論
指数index が配列の最後を超えている場合(つまり、index が count で返される値に等しいかそれ以上の場合には) NSRangeException のエラーが発生します。
このメソッドは、objectAtIndex:と同じです。
利用可能
OS X 10.8 以降で利用可能
以下も見よ
- objectsAtIndexes:
与えられたインデックスセットで指定されたインデックスの配列内のオブジェクトを含む配列を返します。
宣言
<< SWIFT >>
func objectsAtIndexes(_ indexes: NSIndexSet) -> [AnyObject]
<< OBJECTIVE-C >>
- (NSArray<ObjectType> *)objectsAtIndexes:(NSIndexSet *)indexes
戻り値
indexes で指定されたインデックスの配列内のオブジェクトを含む配列。
議論
返されたオブジェクトは、indexes 内のそのインデックスの昇順のオブジェクトであるため、指数の高いインデックスを持つ返された配列内のそのオブジェクトは、indexes が小さいインデックスを持つオブジェクトに続きます。indexes 内の任意の場所が配列の範囲を超えた場合や indexes が nil の時、NSRangeException エラーが発生します。
利用可能
OS X 10.4 以降で利用可能
以下も見よ
- objectEnumerator
配列内の各オブジェクトにアクセスできる、列挙子オブジェクトを返します。
宣言
<< SWIFT >>func objectEnumerator() -> NSEnumerator
<< OBJECTIVE-C >>
- (NSEnumerator<ObjectType> *)objectEnumerator
戻り値
配列内の各オブジェクトにアクセスできる、列挙子オブジェクトで、最小のインデックス位置にある要素から順番に上へとなっています。
議論
インデックス 0 の要素から始まって、順に、配列内の各オブジェクトにアクセスすることができる列挙子オブジェクトを返します。次のように:
- NSEnumerator *enumerator = [myArray objectEnumerator];
- id anObject;
- while (anObject = [enumerator nextObject]) {
-         /* code to act on each element as it is returned */
- }
特別な考慮事項
NSArray mutable サブクラスでこのメソッドを使用するときは、列挙中に配列を変更してはなりません。
高速列挙プロトコルを使用する方が効率的です(NSFastEnumeration を参照のこと)。高速列挙は、OS X v10.5 以降および iOS 2.0 以降で利用可能です。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
nextObject (NSEnumerator)
- reverseObjectEnumerator
逆の順序で、配列内の各オブジェクトにアクセスすることができる列挙子オブジェクトを返します。
宣言
<< SWIFT >>
func reverseObjectEnumerator() -> NSEnumerator
<< OBJECTIVE-C >>
- (NSEnumerator<ObjectType> *)reverseObjectEnumerator
戻り値
最も高いインデックスにある要素からインデックス 0 の要素まで順番に下へと、配列内の各オブジェクトにアクセスできる、列挙子オブジェクト。
特別な考慮事項
NSArray の mutable サブクラスでこのメソッドを使用するときは、列挙中に配列を変更してはなりません。
高速列挙プロトコルを使用する方が効率的です(NSFastEnumeration を参照)。高速列挙は、OS X v10.5 以降および iOS 2.0 以降で利用可能です。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
nextObject (NSEnumerator)
配列内のオブジェクトの検索
- indexOfObject:
与えられたオブジェクトと対応する配列の値が等しい最小のインデックスを返します。
宣言
<< SWIFT >>
func indexOfObject(_ anObject: AnyObject) -> Int
<< OBJECTIVE-C >>
- (NSUInteger)indexOfObject:(ObjectType)anObject
パラメータ
anObject | オブジェクト。 |
戻り値
対応する配列の値で最小のインデックスが anObject に等しいです。配列内のオブジェクトのどれもが anObject に等しくしない場合には、NSNotFound を返します。
議論
IsEqual: メッセージに引数として渡される、各配列の要素は、インデックス 0 から始まり、一致が見つかった場合、または配列の末端に到達するまで anObject に送り続けられます。(NSObject プロトコルで宣言された) isEqual が YES を返せば、オブジェクトは等しいと見なされます。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- indexOfObject:inRange:
与えられたオブジェクトと等しい対応する配列の指定された範囲内で最小のインデックスを返します。
宣言
<< SWIFT >>
func indexOfObject(_ anObject: AnyObject, inRange range: NSRange) -> Int << OBJECTIVE-C >> - (NSUInteger)indexOfObject:(ObjectType)anObject inRange:(NSRange)range
パラメータ
anObject | オブジェクト。 |
range | anObject を検索する中での配列内のインデックスの範囲。 |
戻り値
anObject に等しい、対応する配列の値の range 内で最小のインデックス。range 内のオブジェクトのどれも anObject に等しくしない場合には、NSNotFound を返します。
議論
range.location から始めて、IsEqual: メッセージが配列の各要素に渡され anObject に送信され、一致する物が見つかるか、範囲の終わりに到達するまで続けられます。isEqual: が YES を返す場合、オブジェクトは等しいと見なされます。
range パラメータが配列に存在しない範囲を表す場合は、このメソッドは NSRangeException のエラーを発生させます。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- indexOfObjectIdenticalTo:inRange:
- indexOfObjectIdenticalTo:
対応する配列の値が与えられたオブジェクトと一致する、最小のインデックスを返します。
宣言
<< SWIFT >>
func indexOfObjectIdenticalTo(_ anObject: AnyObject) -> Int
<< OBJECTIVE-C >>
- (NSUInteger)indexOfObjectIdenticalTo:(ObjectType)anObject
パラメータ
anObject | オブジェクト。 |
戻り値
対応する配列の値がが anObject と一致する最小のインデックス。配列内のオブジェクトのどれもが anObject と一致しない場合には、NSNotFound を返します。
議論
オブジェクトのアドレスが同じであればオブジェクトは同一であると見なされます。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- containsObject:- indexOfObject:
- indexOfObjectIdenticalTo:inRange:
対応する配列の値が、与えられたオブジェクトと等しく、指定された範囲内で最小のインデックスを返します。
宣言
<< SWIFT >>
func indexOfObjectIdenticalTo(_ anObject: AnyObject, inRange range: NSRange) -> Int << OBJECTIVE-C >> - (NSUInteger)indexOfObjectIdenticalTo:(ObjectType)anObject inRange:(NSRange)range
パラメータ
anObject | オブジェクト。 |
range | anObject を検索する中での、配列内のインデックスの範囲。 |
戻り値
対応する配列値の range 内で anObject と一致する最低のインデックス。range 内のオブジェクトのどれもが anObject と一致しない場合には、NSNotFound を返します。
議論
オブジェクトのアドレスが一致すればオブジェクトは同一であると見なされます。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- containsObject:- indexOfObject:inRange:
- indexOfObjectPassingTest:
与えられたブロック内のテストに合格する、配列内の最初のオブジェクトのインデックスを返します。
宣言
<< SWIFT >>
func indexOfObjectPassingTest(_ predicate: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> Int << OBJECTIVE-C >> - (NSUInteger)indexOfObjectPassingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate
パラメータ
predicate | 配列内の要素に適用するブロック。 ブロックは3つの引数を取ります。 | |
obj | 配列内の要素。 | |
idx | 配列内の要素のインデックス。 | |
stop | ブール値への参照。ブロックの、配列のさらなる処理を停止するように値を YES に設定できます。stop 引数は、out だけの引数です。ブロック内では、YES にだけこのブール値を設定する必要があります。 | |
ブロック(block) は obj がテストに合格したかどうかを示すブール値を返します。YES が返ると、配列のさらなる処理を停止します。 |
戻り値
predicate で指定されたテストに合格した、配列内の対応する値の最小のインデックス。配列内のオブジェクトが全てテストに合格しなかった場合、NSNotFound を返します。
議論
block パラメータが nil の場合、このメソッドは例外を発生させます。
利用可能
OS X 10.6 以降で利用可能
- indexOfObjectWithOptions:passingTest:
与えられた列挙オプションのセットに対して与えられたブロック内のテストに合格する、配列内のオブジェクトのインデックスを返します。
宣言
<< SWIFT >>
func indexOfObjectWithOptions(_ opts: NSEnumerationOptions, passingTest predicate: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> Int << OBJECTIVE-C >> - (NSUInteger)indexOfObjectWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate
パラメータ
opts | 列挙するためのオプションを指定するビットマスク(同時に実行されるべきか、逆の順序で実行されるべきかどうか)。 | |
predicate | 配列内の要素に適用するブロック。 ブロックは3つの引数を取ります。 | |
obj | 配列内の要素。 | |
idx | 配列内の要素のインデックス。 | |
stop | ブール値への参照。ブロックは、配列のさらなる処理を停止するように値を YES に設定できます。stop 引数は、out だけの引数です。ブロック内では、YES にだけこのブール値を設定する必要があります。 | |
Block は obj がテストに合格したかどうかを示すブール値を返します。 |
戻り値
対応する配列内の値が、predicate と opts で指定されたテストに合格したかどうかのインデックス。opts ビットマスクが逆の順序を指定すると、一致した最後の項目が返されます。それ以外の場合は、最初に一致したオブジェクトのインデックスが返されます。配列内のオブジェクトが全てテストに合格しない場合、NSNotFound を返します。
議論
デフォルトでは、列挙は最初のオブジェクトから始まり、最後のオブジェクトまで、配列を連続的に続けます。この動作を変更するために列挙オプションとして NSEnumerationConcurrent および/または NSEnumerationReverse を指定できます。
重要:Block パラメータが nil の場合は、このメソッドでは例外が発生します。
利用可能
OS X 10.6 以降で利用可能
- indexOfObjectAtIndexes:options:passingTest:
列挙オプションの与えられたセットに対して与えられたブロック内のテストに合格した、配列内のオブジェクトのインデックスの与えられたセットから、インデックスを返します。
宣言
<< SWIFT >>
func indexOfObjectAtIndexes(_ s: NSIndexSet, options opts: NSEnumerationOptions, passingTest predicate: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> Int << OBJECTIVE-C >> - (NSUInteger)indexOfObjectAtIndexes:(NSIndexSet *)indexSet options:(NSEnumerationOptions)opts passingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate
パラメータ
indexSet | 列挙した上でのオブジェクトのインデックス。 | |
opts | 列挙するためのオプションを指定するビットマスク(同時に実行されるべきか、逆の順序で実行されるべきか)。 | |
predicate | 配列内の要素に適用するブロック。 ブロックは3つの引数を取ります。 | |
obj | 配列内の要素。 | |
idx | 配列内の要素のインデックス。 | |
stop | ブール値への参照。ブロックは、配列のさらなる処理を停止するように値を YES に設定できます。stop 引数は、out だけの引数です。ブロック内ではこのブール値を YES にしか設定できません。 | |
ブロックは、obj がテストに合格したかどうかを示すブール値を返します。 |
戻り値
predicate で指定されたテストに合格する、対応した配列内の値で最小のインデックス。配列内のオブジェクトが全てテストに合格しない場合、NSNotFound を返します。
議論
デフォルトでは、列挙は最初のオブジェクトから始まり、indexSet で指定された最後の要素まで、配列を連続して続けられます。この動作を変更するために、列挙オプションとして NSEnumerationConcurrent および/または NSEnumerationReverse を指定することができます。
重要:ブロックパラメータまたは indexSet が nil の場合、このメソッドでは例外が発生します。
利用可能
OS X 10.6 以降で利用可能
- indexesOfObjectsPassingTest:
与えられたブロック内のテストに合格した、配列内のオブジェクトのインデックスを返します。
宣言
<< SWIFT >>
func indexesOfObjectsPassingTest(_ predicate: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) ->> NSIndexSet << OBJECTIVE-C >> - (NSIndexSet *)indexesOfObjectsPassingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate
パラメータ
predicate | 配列内の要素に適用するブロック。 ブロックは3つの引数を取ります。 | |
obj | 配列内の要素。 | |
idx | 配列内の要素のインデックス。 | |
stop | ブール値への参照。ブロックの、配列のさらなる処理を停止するように値を YES に設定できます。stop 引数は、out だけの引数です。ブロック内では、YES にだけこのブール値を設定する必要があります。 | |
ブロック は obj がテストに合格したかどうかを示すブール値を返します。YES が返ると、配列のさらなる処理を停止します。 |
戻り値
その配列の、対応する値の断言(predicate)によって指定されたテストに合格したインデックス。テストに合格した配列内のオブジェクトがない場合は、空のインデックスセットを返します。
利用可能
OS X 10.6 以降で利用可能
- indexesOfObjectsWithOptions:passingTest:
列挙オプションの与えられたセットに対して与えられたブロック内のテストに合格した、配列内のオブジェクトのインデックスを返します。
宣言
<< SWIFT >>
func indexesOfObjectsWithOptions(_ opts: NSEnumerationOptions, passingTest predicate: (AnyObject, Int, UnsafeMutablePointer%ltObjCBool>) -> Bool) -> NSIndexSet << OBJECTIVE-C >> - (NSIndexSet *)indexesOfObjectsWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate
パラメータ
opts | 列挙するためのオプションを指定するビットマスク(同時に実行されるべきか、逆の順序で実行されるべきかどうか)。 | |
predicate | 配列内の要素に適用するブロック。 ブロックは3つの引数を取ります。 | |
obj | 配列内の要素。 | |
idx | 配列内の要素のインデックス。 | |
stop | ブール値への参照。ブロックは、配列のさらなる処理を停止するように値を YES に設定できます。stop 引数は、out だけの引数です。ブロック内では、YES にだけこのブール値を設定する必要があります。 | |
Block は obj がテストに合格したかどうかを示すブール値を返します。 |
戻り値
その配列の、対応する値の断言(predicate)によって指定されたテストに合格したインデックス。テストに合格した配列内のオブジェクトがない場合は、空のインデックスセットを返します。
議論
デフォルトでは、列挙は最初のオブジェクトから始まり、最後のオブジェクトまで、配列を順次続けます。この動作を変更するには、列挙オプションとして NSEnumerationConcurrent および/または NSEnumerationReverse を指定することができます。
重要:ブロックパラメータが nilの場合 、このメソッドでは例外が発生します。
利用可能
OS X 10.6 以降で利用可能
- indexesOfObjectsAtIndexes:options:passingTest:
列挙オプションの与えられたセットに対して与えられたブロック内のテストに合格した配列内のオブジェクトのインデックスの与えられたセットから、インデックスを返します。
宣言
<< SWIFT >>
func indexesOfObjectsAtIndexes(_ s: NSIndexSet, options opts: NSEnumerationOptions, passingTest predicate: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> NSIndexSet << OBJECTIVE-C >> - (NSIndexSet *)indexesOfObjectsAtIndexes:(NSIndexSet *)indexSet options:(NSEnumerationOptions)opts passingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate
パラメータ
indexSet | 列挙した上でのオブジェクトのインデックス。 | |
opts | 列挙するためのオプションを指定するビットマスク(同時に実行されるべきか、逆の順序で実行されるべきか)。 | |
predicate | 配列内の要素に適用するブロック。 ブロックは3つの引数を取ります。 | |
obj | 配列内の要素。 | |
idx | 配列内の要素のインデックス。 | |
stop | ブール値への参照。ブロックは、配列のさらなる処理を停止するように値を YES に設定できます。stop 引数は、out だけの引数です。ブロック内ではこのブール値を YES にしか設定できません。 | |
ブロックは、obj がテストに合格したかどうかを示すブール値を返します。 |
戻り値
対応する配列内の値が predicate によって指定されたテストに合格したかを示すインデックスです。配列内のオブジェクトが全て、テストに合格しなかった場合は、空のインデックスセットを返します。
議論
デフォルトでは、列挙は最初のオブジェクトから始まり、indexSet で指定された最後の要素まで、配列を順次続けます。この動作を変更するために列挙オプションとして NSEnumerationConcurrent および/または NSEnumerationReverse を指定することができます。
重要:ブロックパラメータまたは indexSet が nilの場合 、このメソッドでは例外が発生します。
利用可能
OS X 10.6 以降で利用可能
- indexOfObject:inSortedRange:options:usingComparator:
与えられた NSComparator ブロックを使用して、配列内の要素と比較した、オブジェクトの指定した範囲内のインデックスを返します。
宣言
<< SWIFT >>
func indexOfObject(_ obj: AnyObject, inSortedRange r: NSRange, options opts: NSBinarySearchingOptions, usingComparator cmp: NSComparator) -> Int << OBJECTIVE-C >> - (NSUInteger)indexOfObject:(ObjectType)obj inSortedRange:(NSRange)r options:(NSBinarySearchingOptions)opts usingComparator:(NSComparator)cmp
パラメータ
obj | 配列内を検索するために使われるオブジェクト。 この値が nil の場合、NSInvalidArgumentException の例外が起こります。 |
r | obj を検索するための配列内の範囲。 r が配列の範囲を超えた場合(範囲の長さプラス位置が配列の数よりも大きい場合)、 NSRangeException のエラーが起こります。 |
opts | 検索のためのオプション。可能な値については、NSBinarySearchingOptions を参照してください。 NSBinarySearchingFirstEqual と NSBinarySearchingLastEqual の両方を指定した場合、NSInvalidArgumentException の例外が起こります。 |
cmp | 配列の要素でオブジェクト obj を比較するために使用されるコンパレータブロックです。 この値が NULL の場合、NSInvalidArgumentException の例外が起こります。 |
戻り値
NSBinarySearchingInsertionIndex オプションが指定されていない場合:
NSBinarySearchingInsertionIndex オプションが指定されている場合は、ソートされた配列を維持するために、obj を挿入する位置のインデックスを返します。
特別な考慮事項
配列内の要素は、すでにコンパレータ cmp を使用してソートされている必要があります。配列がソートされていない場合、結果は未定義です。
利用可能
OS X 10.6 以降で利用可能
メッセージを要素に送信
- makeObjectsPerformSelector:
配列内の各々のオブジェクトに、与えられたセレクタで識別されるメッセージを送信し、最初のオブジェクトで始まり、最後のオブジェクトまで続く配列。
宣言
<< OBJECTIVE-C >>
- (void)makeObjectsPerformSelector:(SEL)aSelector
パラメータ
aSelector | 配列内のオブジェクトに送信するメッセージを識別するセレクタ。メソッドは引数を取ってはならず、受信配列を変更するという副作用があってはなりません。 |
議論
aSelector が NULL の場合、このメソッドは NSInvalidArgumentException の例外を発生させます。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- makeObjectsPerformSelector:withObject:
- makeObjectsPerformSelector:withObject:
配列内の各オブジェクトに aSelector メッセージを送信し、最初のオブジェクトから始まり、最後のオブジェクトまで続きます。
宣言
<< OBJECTIVE-C >>
- (void)makeObjectsPerformSelector:(SEL)aSelector withObject:(id)anObject
パラメータ
aSelector | 配列内のオブジェクトに送信するメッセージを識別するセレクタ。このメソッドは、id 型の単一の引数を取る必要があり、受信配列を変更するという副作用があってはなりません。 |
anObject | aSelector メソッドを呼び出すたびに引数として送信するオブジェクト。 |
議論
aSelector が NULL の場合、このメソッドは NSInvalidArgumentException の例外を発生させます。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- enumerateObjectsUsingBlock:
最初のオブジェクトから始まり、最後のオブジェクトまで配列を反復継続して、配列内の各オブジェクトを使用して、与えられたブロックを実行します。
宣言
<< SWIFT >>
func enumerateObjectsUsingBlock(_ block: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Void) << OBJECTIVE-C >> - (void)enumerateObjectsUsingBlock:(void (^)(ObjectType obj, NSUInteger idx, BOOL *stop))block
パラメータ
block | 配列内の要素に適用するブロック。 ブロックは3つの引数を取ります。 | |
obj | 配列内の要素。 | |
idx | 配列内の要素のインデックス。 | |
stop | ブール値への参照。ブロックは、配列のさらなる処理を停止するように値を YES に設定できます。stop 引数は、out だけの引数です。ブロック内でこのブール値を YES にしか設定できません。 |
議論
Block パラメータが nil の場合、このメソッドでは例外が発生します。ブロックが実行された後、ブロック内に割り当てられた値は、割り当て解除されます。明示的にこれらの値を維持するためには、retain を使用してください。
このメソッドは同期的に実行されます。
利用可能
OS X 10.6 以降で利用可能
以下も見よ
- enumerateObjectsWithOptions:usingBlock:
- makeObjectsPerformSelector:withObject:
- enumerateObjectsWithOptions:usingBlock:
配列内の各オブジェクトを使用して、与えられたブロックを実行します。
宣言
<< SWIFT >>
func enumerateObjectsWithOptions(_ opts: NSEnumerationOptions, usingBlock block: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Void) << OBJECTIVE-C >> - (void)enumerateObjectsWithOptions:(NSEnumerationOptions)opts usingBlock:(void (^)(ObjectType obj, NSUInteger idx, BOOL *stop))block
パラメータ
opts | 列挙するためのオプション(同時に実行されるべきか、逆の順序で実行されるべきか) を指定するビットマスク。 | |
block | 配列内の要素に適用するブロック。 ブロックは3つの引数を取ります。 | |
obj | 配列内の要素。 | |
idx | 配列内の要素のインデックス。 | |
stop | ブール値への参照。ブロックは、配列のさらなる処理を停止するように値を YES に設定できます。stop 引数は、out だけの引数です。ブロック内ではこのブール値を YES にしか設定できません。 |
議論
デフォルトでは、列挙は最初のオブジェクトから始まり、最後のオブジェクトまで、配列を順次続けます。この動作を変更するために列挙オプションとして NSEnumerationConcurrent および/または NSEnumerationReverse を指定できます。
このメソッドは同期的に実行されます。
重要:Block パラメータが nil の場合、このメソッドでは例外が発生します。
利用可能
OS X 10.6 以降で利用可能
以下も見よ
- makeObjectsPerformSelector:withObject:
- enumerateObjectsAtIndexes:options:usingBlock:
指定されたインデックスで配列内のオブジェクトを使用して、与えられたブロックを実行します。
宣言
<< SWIFT >>
func enumerateObjectsAtIndexes(_ s: NSIndexSet, options opts: NSEnumerationOptions, usingBlock block: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Void) << OBJECTIVE-C >> - (void)enumerateObjectsAtIndexes:(NSIndexSet *)indexSet options:(NSEnumerationOptions)opts usingBlock:(void (^)(ObjectType obj, NSUInteger idx, BOOL *stop))block
パラメータ
indexSet | その上に列挙すべき、オブジェクトのインデックス。 | |
opts | 列挙するためのオプション(同時に実行されるべきか、逆の順序で実行されるべきか) を指定するビットマスク。 | |
block | 配列内の要素に適用するブロック。 ブロックは3つの引数を取ります。 | |
obj | 配列内の要素。 | |
idx | 配列内の要素のインデックス。 | |
stop | ブール値への参照。ブロックは、配列のさらなる処理を停止するように値を YES に設定できます。stop 引数は、out だけの引数です。ブロック内ではこのブール値を YES にしか設定できません。 |
議論
デフォルトでは、列挙は最初のオブジェクトから始まり、indexSet で指定された最後の要素まで、配列を順次続けます。この動作を変更するために、列挙のオプションとして NSEnumerationConcurrent および/または NSEnumerationReverse を指定できます。
このメソッドは同期的に実行されます。
重要:ブロックパラメータまたは indexSet が nil の場合は、このメソッドでは例外が発生します。
利用可能
OS X 10.6 以降で利用可能
以下も見よ
- makeObjectsPerformSelector:withObject:
配列の比較
- firstObjectCommonWithArray:
別の与えられた配列内のオブジェクトと等しい受信配列に含まれる最初のオブジェクトを返します。
宣言
<< SWIFT >>
func firstObjectCommonWithArray(_ otherArray: [AnyObject]) -> AnyObject?
<< OBJECTIVE-C >>
- (ObjectType)firstObjectCommonWithArray:(NSArray<ObjectType> *)otherArray
パラメータ
othrArray | 配列。 |
戻り値
otherArray 内のオブジェクトと等しい受信配列に含まれる最初のオブジェクトを返します。そのようなオブジェクトが見つからない場合、nil を返します。
議論
このメソッドでは、オブジェクトが等しい事をチェックするのに、IsEqual: を、使っています。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- isEqualToArray:
受信配列を他の配列と比較します。
宣言
<< SWIFT >>
func isEqualToArray(_ otherArray: [AnyObject]) -> Bool
<< OBJECTIVE-C >>
- (BOOL)isEqualToArray:(NSArray<ObjectType> *)otherArray
パラメータ
otherArray | 配列。 |
戻り値
もし otherArray の内容が、受信配列の内容に等しければ YES を返し、そうでなければ NO を返します。
議論
それぞれの配列が IsEqual: テストを満たす、与えられたインデックスのオブジェクトと、同じ数のオブジェクトをそれぞれ保持する場合は、2つの配列は同じ内容です。
利用可能
OS X 10.0 以降で利用可能
新しい配列を受け継ぐ
- arrayByAddingObject:
与えられたオブジェクトを配列の最後に加え、コピーした新しい配列を返します。
宣言
<< SWIFT >>
func arrayByAddingObject(_ anObject: AnyObject) -> [AnyObject]
<< OBJECTIVE-C >>
- (NSArray<ObjectType> *)arrayByAddingObject:(ObjectType)anObject
パラメータ
anObject | オブジェクト。 |
戻り値
anObject を最後に加えて受信した配列をコピーした、新しい配列。
議論
anObject が nil の場合、NSInvalidArgumentException が発生します。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
addObject:( NSMutableArray)
- arrayByAddingObjectsFromArray:
別の配列に含まれるオブジェクトを最後に追加した、受信配列のコピーである新しい配列を返します。
宣言
<< SWIFT >>
func arrayByAddingObjectsFromArray(_ otherArray: [AnyObject]) -> [AnyObject]
<< OBJECTIVE-C >>
- (NSArray<ObjectType> *)arrayByAddingObjectsFromArray:(NSArray<ObjectType> *)otherArray
パラメータ
otherArray | 配列。 |
戻り値
otherArray に含まれるオブジェクトを最後に追加した、受信配列のコピーである新しい配列。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
addObjectsFromArray: (NSMutableArray)
- filteredArrayUsingPredicate:
受信配列内の各オブジェクトに対して与えられた断言を評価し、true を返すと断言するオブジェクトを含む新しい配列を返します。
宣言
<< SWIFT >>
func filteredArrayUsingPredicate(_ predicate: NSPredicate) -> [AnyObject]
<< OBJECTIVE-C >>
- (NSArray<ObjectType> *)filteredArrayUsingPredicate:(NSPredicate *)predicate
パラメータ
predicate | どの受信配列の要素を評価するべきか、に対しての断言。 |
戻り値
どの predicate (断言)が true を返すべき受信配列で、その中のオブジェクトを含む、新しい配列。
受信配列と同じ順序で表示される結果の配列のオブジェクト。
議論
詳細については、Predicate プログラミングガイドを参照してください。
利用可能
OS X 10.4 以降で利用可能
- subarrayWithRange:
与えられた範囲で指定された限度内にある受信配列の要素を含む新しい配列を返します。
宣言
<< SWIFT >>
func subarrayWithRange(_ range: NSRange) -> [AnyObject]
<< OBJECTIVE-C >>
- (NSArray<ObjectType> *)subarrayWithRange:(NSRange)range
パラメータ
range | 要素の受信配列の範囲内にある範囲。 |
戻り値
range で指定された限度内にある受信配列の要素を含む新しい配列。
議論
range は、要素の受信配列の範囲内にない場合、NSRangeException のエラーが発生します。
たとえば、以下のコード例では、(wholeArray が存在すると仮定して) wholeArray の前半に見られる要素を含む配列を作成します。
- NSArray *halfArray;
- NSRange theRange;
- theRange.location = 0;
- theRange.length = [wholeArray count] / 2;
- halfArray = [wholeArray subarrayWithRange:theRange];
利用可能
OS X 10.0 以降で利用可能
並べ替え
sortedArrayHint プロパティ
配列を解析して、ヒントが sortedArrayUsingFunction:context:hint: (読み取り専用) に供給されると、配列の並べ替えを高速化する「ヒント」を返します。
宣言
<< SWIFT >>
@NSCopying var sortedArrayHint: NSData { get }
<< OBJECTIVE-C >>
@property(readonly, copy) NSData *sortedArrayHint
利用可能
OS X 10.0 以降で利用可能
- sortedArrayUsingFunction:context:
比較関数 comparator によって定義される昇順で受信配列の要素を一覧表示する新しい配列を返します。
宣言
<< SWIFT >>
func sortedArrayUsingFunction(_ comparator: (AnyObject, AnyObject, UnsafeMutablePointer<Void>) -> Int, context context: UnsafeMutablePointer<Void>) -> [AnyObject] << OBJECTIVE-C >> - (NSArray<ObjectType> *)sortedArrayUsingFunction:(NSInteger (*)(ObjectType, ObjectType, void *))comparator context:(void *)context
議論
新しい配列は、受信配列の要素への参照を含んでおり、それらのコピーではありません。
比較関数は、一度に2つの要素を比較し、最初の要素が第二の要素よりも小さい場合は、NSOrderedAscending を返し、最初の要素が、第2の要素より大きい時はNSOrderedDescending を返し、2つの要素が等しい場合、NSOrderedSame を返します。比較関数が呼ばれるたびに、3番目の引数として context が渡されます。これは比較が、文字の並べ替えで大文字と小文字を区別するか、しないかなど、いくつかの外部パラメータに基づいてなされます。
与えられたanArray(NSNumber オブジェクトの配列) と、このタイプの比較関数では:
- NSInteger intSort(id num1, id num2, void *context)
- {
-         int v1 = [num1 intValue];
-         int v2 = [num2 intValue];
-         if (v1 < v2)
-                 return NSOrderedAscending;
-         else if (v1 > v2)
-                 return NSOrderedDescending;
-         else
-                 return NSOrderedSame;
- }
anArray の並べ替えられたバージョンは以下のように作成されます:
NSArray *sortedArray.; sortedArray = [anArray sortedArrayUsingFunction:intSort context:NULL];
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- sortedArrayUsingDescriptors:
- sortedArrayUsingFunction:context:hint:
- sortedArrayUsingFunction:context:hint:
比較関数 comparator によって定義された、昇順での受信配列の要素を一覧表示する、新しい配列を返します。
宣言
<< SWIFT >>
func sortedArrayUsingFunction(_ comparator: (AnyObject, AnyObject, UnsafeMutablePointer<Void>) -> Int, context context: UnsafeMutablePointer<Void>, hint hint: NSData?) -> [AnyObject] << OBJECTIVE-C >> - (NSArray<ObjectType> *)sortedArrayUsingFunction:(NSInteger (*)(ObjectType, ObjectType, void *))comparator context:(void *)context hint:(NSData *)hint
議論
新しい配列は、受信配列の要素への参照を含んでおり、それらのコピーではありません。
このメソッドは、sortedArrayUsingFunction:context: に似ています。並べ替え処理を高速化するために供給されるヒントを使用していることを除いて。配列がほぼ並べ替えられたとわかった場合、このメソッドは sortedArrayUsingFunction:context: よりも高速です。一度大規模な配列(N のエントリ) を並べ替えし、多くの事を変化させなかったとすると(P の追加と削除、ここで P は N よりはるかに小さい)、概念上は元のソート中にしていた作業を再利用でき、N "旧"項目と P"新"項目の間でマージして並べ替えます。
適切なヒントを得るには、sortedArrayHint を使用して下さい。元の配列が並べ替えされている場合、このヒントを得て、配列が変更された後、それを必要とするまで持っていた方がいいでしょう。ヒントは、O (N) (N は項目の数です) で sortedArrayHint によって計算されます。配列内の項目は、-hash メソッドを実装することを前提としています。適切なヒントが与えられ、hash 関数が"良い" hash 関数、- sortedArrayUsingFunction: context:hint: であると仮定し、O(P*LOG(P)+N) の配列を並べ替えし、ここで P は追加または削除する数です。O (N*LOG(N))、ヒントを与えられない並べ替えに対し改良したもので、P が小さいとき。
ヒントは、単純に、N 個のハッシュを含むサイズ N の配列です。再ソートするには、インデックスにハッシュをマッピングテーブルを内部的に作成しマップにする必要があります。新しい配列上にこのマップテーブルを使用して、インデックスの最初の推測を取得し、次にそれを並べ替えできます。例えば、並べ替えされた配列{A、B、D、E、F} に、対応するハッシュ値{25、96、78、32、17} は、小さな変化を受ける可能性があり、内容が変わり、{E、A、C、 B、F}となります。マッピングテーブルは、ハッシュを{25、96、78、32、17} とマップテーブルに置き、{#0、#1、#2、#3、#4}とインデックスに置き換えます。もしハッシュの{E、A、C、B、F} が{32、25、99、96、17} なら、マップテーブルを使って、最初の並べ替えの順番は{#3、#0、?、#1、#4} と取得でき、したがって、初期の半分並べ替えされた配列{A、B、E、F} を作成して、{C} で安上がりのマージソートを実行して、{A、B、C、E、F} を生じます。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- sortedArrayUsingDescriptors:
- sortedArrayUsingFunction:context:
- sortedArrayUsingDescriptors:
ソート記述子で与えられた配列によって指定された、並べ替えられた受信配列のコピーを返します。
宣言
<< SWIFT >>
func sortedArrayUsingDescriptors(_ sortDescriptors: [NSSortDescriptor]) -> [AnyObject]
<< OBJECTIVE-C >>
- (NSArray<ObjectType> *)sortedArrayUsingDescriptors:(NSArray<NSSortDescriptor *> *)sortDescriptors
パラメータ
sortDescriptors | NSSortDescriptor オブジェクトの配列。 |
戻り値
sortDescriptors によって指定された、並べ替えられた受信配列のコピー。
議論
最初の記述子は、受信配列の内容を並べ替えるのに使用される主キーのパスを指定します。その後の記述子は、さらに重複する値を持つオブジェクトの並べ替えを改良するために使用されます。詳細については NSSortDescriptor を参照してください。
利用可能
OS X 10.3 以降で利用可能
以下も見よ
- sortedArrayUsingFunction:context:
- sortedArrayUsingFunction:context:hint:
- sortedArrayUsingSelector:
与えられたセレクタで指定された比較のメソッドによって決定された昇順で、受信配列の要素を一覧表示する配列を返します。
宣言
<< SWIFT >>
func sortedArrayUsingSelector(_ comparator: Selector) -> [AnyObject]
<< OBJECTIVE-C >>
- (NSArray<ObjectType> *)sortedArrayUsingSelector:(SEL)comparator
パラメータ
comparator | 一度に2つの要素を比較するために使用するメソッドを識別する、selector(セレクタ)。受信配列が引数より小さい場合はメソッドは NSOrderedAscending を返し、受信配列が、引数よりも大きい場合は、NSOrderedDescending を返し、それらが等しい場合は、NSOrderedSame を返します。 |
戻り値
セレクタ comparator で指定された比較のメソッドにより決定した昇順で、受信配列の要素を一覧表示した配列。
議論
新しい配列は、それらのコピーではなく、受信配列の要素への参照を含んでいます。
comparator のメッセージは、配列内の各オブジェクトに送信され、その単一の引数として配列内の別のオブジェクトを持っています。
例えば、NSString オブジェクトの配列は、NSStringクラスで宣言された caseInsensitiveCompare: メソッドを使って並べ替えされます。anArray が存在すると仮定すると、配列の並べ替えられたバージョンでは、この方法で作成できます。
- NSArray *sortedArray =
-         [anArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- sortedArrayUsingDescriptors:
- sortedArrayUsingFunction:context:
- sortedArrayUsingFunction:context:hint:
- sortedArrayUsingComparator:
与えられた NSComparator ブロックで指定された比較メソッドにより決定された昇順で受信配列の要素を、一覧表示している配列を返します。
宣言
<< SWIFT >>
func sortedArrayUsingComparator(_ cmptr: NSComparator) -> [AnyObject]
<< OBJECTIVE-C >>
- (NSArray<ObjectType> *)sortedArrayUsingComparator:(NSComparator)cmptr
パラメータ
cmptr | コンパレーターのブロック。 |
戻り値
cmptr で指定された比較メソッドで決定された昇順で受信配列の要素を、一覧表示する配列。
利用可能
OS X 10.6 以降で利用可能
- sortedArrayWithOptions:usingComparator:
与えられた NSComparator ブロックで指定された比較メソッドにより決定された昇順で受信配列の要素を、一覧表示している配列を返します。
宣言
<< SWIFT >>
func sortedArrayWithOptions(_ opts: NSSortOptions, usingComparator cmptr: NSComparator) -> [AnyObject] << OBJECTIVE-C >> - (NSArray<ObjectType> *)sortedArrayWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr
パラメータ
opts | 並べ替えのオプションを指定するビットマスク(同時に実行されるべきか、安定して行われるべきか)。 |
cmptr | コンパレータのブロック。 |
戻り値
cmptr で指定された比較メソッドによって決定された、昇順で受信配列の要素を一覧表示した配列。
利用可能
OS X 10.6 以降で利用可能
文字列要素の操作
- componentsJoinedByString:
配列の要素の間の与えられたセパレーターを介在した結果である NSString オブジェクトを組み立て、返します。
宣言
<< SWIFT >>
func componentsJoinedByString(_ separator: String) -> String
<< OBJECTIVE-C >>
- (NSString *)componentsJoinedByString:(NSString *)separator
パラメータ
separator | 配列の要素の間に介在する、文字列。 |
戻り値
配列の要素間に separator を介在した結果である NSString オブジェクト。配列に要素がない場合は、空の文字列を表す NSString オブジェクトを返します。
議論
たとえば、次のコードの抜粋は、コンソールに"here be dragons "と書き込みます。
- NSArray *pathArray = [NSArray arrayWithObjects:@"here", @"be", @"dragons", nil];
- NSLog(@"%@",[pathArray componentsJoinedByString:@" "]);
特別な考慮事項
配列内の各要素は、description を処理しなければなりません。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
componentsSeparatedByString: (NSString)
説明の作成
description プロパティ
プロパティリストとしてフォーマットされた、配列の内容を表す文字列。(読み取り専用)
宣言
<< SWIFT >>
var description: String { get }
<< OBJECTIVE-C >>
@property(readonly, copy) NSString *description
利用可能
OS X 10.0 以降で利用可能
- descriptionWithLocale:
プロパティリストとしてフォーマットされた、配列の内容を表す文字列を返します。
宣言
<< SWIFT >>
func descriptionWithLocale(_ locale: AnyObject?) -> String
<< OBJECTIVE-C >>
- (NSString *)descriptionWithLocale:(id)locale
パラメータ
locale | (認識される) 配列の各要素をフォーマットするために使用されるオプションを指定する、NSLocale オブジェクトか、または NSDictionary オブジェクト。要素がフォーマットされたくない場合は nil を指定します。 |
戻り値
プロパティリストとしてフォーマットされた、配列の内容を表す文字列。
議論
locale が受信配列の各要素に適用される方法の説明については、descriptionWithLocale:indent: を参照してください。
利用可能
OS X 10.0 以降で利用可能
- descriptionWithLocale:indent:
プロパティリストとしてフォーマットされた、配列の内容を表す文字列を返します。
宣言
<< SWIFT >>
func descriptionWithLocale(_ locale: AnyObject?, indent level: Int) -> String << OBJECTIVE-C >> - (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level
パラメータ
locale | (認識される)配列の各要素をフォーマットするために使用されるオプションを指定する、NSLocale オブジェクトか、または NSDictionary オブジェクト。要素がフォーマットされたくない場合は nil を指定します。 |
level | 出力をもっと読みやすくするためのインデントのレベル。インデントに4個のスペースを使うには level を 0 にに設定し、またはタブのキャラクタで出力をインデントするには 1 に設定します。 |
戻り値
プロパティリストとしてフォーマットされた、配列の内容を表す文字列。
議論
返された NSString オブジェクトは、最初から最後まで順番に、配列の要素のそれぞれの文字列表現を含んでいます。与えられた要素の文字列表現は、descriptionWithLocale:indent: で以下のように進行します。
- 要素が NSString オブジェクトの場合、そのまま使用されます。
- 要素が descriptionWithLocale:indent: に応答する場合は、そのメソッドは要素の文字列表現を得る為に呼び出されます。
- 要素が descriptionWithLocale: に応答する場合、そのメソッドは、要素の文字列表現を取る為に呼び出されます。
- 上記の条件のいずれでもない場合、要素の文字列表現は、その description メソッドを呼び出すことによって得られます。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
宣言
NSArray.h
配列の保存
- writeToFile:atomically:
与えられたパスにあるファイルへ、配列の内容を書き込みます。
宣言
<< SWIFT >>
func writeToFile(_ path: String, atomically useAuxiliaryFile: Bool) -> Bool
<< OBJECTIVE-C >>
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
パラメータ
path | 配列の内容を書き込むべきパス。 path がチルダ(~) 文字を含んでいる場合は、このメソッドを呼び出す前に stringByExpandingTildeInPath でそれを展開する必要があります。 |
flag | YES の場合、配列は補助ファイルに書き込まれ、その後、補助ファイルは、path の名前に変更されます。NO の場合、配列は、path に直接書き込まれます。YES オプションは、その path を保証し、それが完全に存在している場合、システムが書き込み中にクラッシュした場合でも、破損しません。 |
戻り値
ファイルが正常に書き込まれた場合 YES、そうでなければ NO。
議論
もし配列の内容が全てプロパティリストのオブジェクト(NSString、NSData、NSArray、または NSDictionary オブジェクト) なら、このメソッドで書き込まれるファイルは、クラスメソッド arrayWithContentsOfFile: かインスタンスメソッド initWithContentsOfFile: で新しい配列を初期化するために使用できます。このメソッドは、再帰的に有効であり、含まれているすべてのオブジェクトは、ファイルを書き出す前にはプロパティリストオブジェクトであり、全てのオブジェクトがプロパティリストオブジェクトでなければ、結果として生じたファイルは有効なプロパティリストではないので、 NO を返します。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
- initWithContentsOfFile:- writeToURL:atomically:
与えられた URL で指定された場所に配列の内容を書き込みます。
宣言
<< SWIFT >>
func writeToURL(_ url: NSURL, atomically atomically: Bool) -> Bool << OBJECTIVE-C >> - (BOOL)writeToURL:(NSURL *)aURL atomically:(BOOL)flag
パラメータ
aURL | 配列を書き込むべき場所。 |
flag | YES の場合、配列は補助の場所に書き込まれ、その後、補助位置の名前は aURL に変更されます。NO の場合、配列は aURL に直接書き込まれます。YES オプションは、aURL を保証し、それがすべて存在している場合、システムが書き込み中にクラッシュした場合でも、破損しません。 |
戻り値
場所に書き込むのが成功した場合 YES、そうでなければ NO。
議論
配列の内容が、すべてプロパティリストオブジェクト(NSString、NSData、NSArray、または NSDictionary オブジェクト) である場合、このメソッドで書き込まれる場所は、クラスメソッド arrayWithContentsOfURL: かインスタンスメソッド initWithContentsOfURL: で新しい配列を初期化するために使用することができます。
利用可能
OS X 10.0 以降で利用可能
以下も見よ
パスの収集
- pathsMatchingExtensions:
与えられた配列からファイル名の拡張子を持つ受信配列内のすべてのパス名の要素を含む配列を返します。
宣言
<< SWIFT >>
func pathsMatchingExtensions(_ filterTypes: [String]) -> [String]
<< OBJECTIVE-C >>
- (NSArray<<SString *> *)pathsMatchingExtensions:(NSArray<NSString *> *)filterTypes
パラメータ
filterType | ファイル名の拡張子を含む NSString オブジェクトの配列。拡張子にドット(".")文字を含めてはいけません。 |
戻り値
filterTypes 配列からファイル名の拡張子を持つ受信配列内のすべてのパス名の要素を含む配列。
利用可能
OS X 10.0 以降で利用可能
キー値監視
- addObserver:forKeyPath:options:context:
例外を発生させます。
宣言
<< SWIFT >>
func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions, context context: UnsafeMutablePointer<Void>) << OBJECTIVE-C >> - (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context
パラメータ
observer | KVO 通知を登録するオブジェクト。オブザーバーは、キー値を観察するメソッドである、observeValueForKeyPath:ofObject: change:context: を実装しなければなりません。 |
keyPath | 監視するプロパティの、配列への相対的キーパス。この値は nil であってはなりません。 |
options | 監視の通知に何が含まれているかを指定する NSKeyValueObservingOptions 値の組み合わせ。 |
context | observeValueForKeyPath:ofObject:change:context: 内の observer に渡される任意のデータ。 |
特別な考慮事項
NSArray オブジェクトは監視できないため、NSArray オブジェクト上で呼び出されると、このメソッドは例外を発生させます。配列を監視する代わりに、配列は、関連するオブジェクトのコレクションであるため対多の関係を監視して下さい。
利用可能
OS X v10.4 以降で利用可能。
以下も見よ
- addObserver:toObjectsAtIndexes:forKeyPath:options:context
- removeObserver:forKeyPath:
例外を発生させます。
宣言
<< SWIFT >>
func removeObserver(_ observer: NSObject, forKeyPath keyPath: String) << OBJECTIVE-C >> - (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath
パラメータ
observer | 監視者として削除すべきオブジェクト。 |
keyPath | KVO 変更通知を受け取るように登録されている observer の配列への相対キーパス。この値は nil であってはなりません。 |
特別な考慮事項
NSArray オブジェクトは監視できないため、NSArray オブジェクト上で呼び出されると、このメソッドは例外を発生させます。配列を監視する代わりに、配列は、関連するオブジェクトのコレクションであるため対多の関係を監視して下さい。
利用可能
OS X 10.4 以降で利用可能
以下も見よ
- addObserver:forKeyPath:options:context:
- removeObserver:fromObjectsAtIndexes:forKeyPath:
- removeObserver:forKeyPath:context:
例外を発生させます。
宣言
<< SWIFT >>
func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutablePointer<Void>)<< OBJECTIVE-C >>
- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath context:(void *)context
パラメータ
observer | 監視者として削除すべきオブジェクト。 |
keyPath | KVO 変更通知を受け取るように登録されている observer のセットへの相対キーのパス。この値は nil であってはなりません。 |
context | 通知に合格したコンテキスト。 |
特別な考慮事項
NSArray オブジェクトは監視できないため、NSArray オブジェクト上で呼び出されると、このメソッドは例外を発生させます。配列を監視する代わりに、配列は、関連するオブジェクトのコレクションであるために対多の関係を監視して下さい。
利用可能
OS X 10.7 以降で利用可能
以下も見よ
- addObserver:forKeyPath:options:context:
- removeObserver:fromObjectsAtIndexes:forKeyPath:context:
例外を発生させます。
宣言
<< SWIFT >>
func removeObserver(_ observer: NSObject, fromObjectsAtIndexes indexes: NSIndexSet, forKeyPath keyPath: String, context context: UnsafeMutablePointer<Void>) << OBJECTIVE-C >> - (void)removeObserver:(NSObject *)observer fromObjectsAtIndexes:(NSIndexSet *)indexes forKeyPath:(NSString *)keyPath context:(void *)context
パラメータ
observer | 監視者として削除すべきオブジェクト。 |
keyPath | KVO 変更通知を受け取るように登録されている observer の配列への相対キーのパス。この値は nil であってはなりません。 |
context | 通知に合格したコンテキスト。 |
特別な考慮事項
NSArray オブジェクトは監視できないため、NSArray オブジェクト上で呼び出されると、このメソッドは例外を発生させます。配列を監視する代わりに、配列は、関連するオブジェクトのコレクションであるために対多の関係を監視して下さい。
利用可能
OS X 10.7 以降で利用可能
以下も見よ
- addObserver:forKeyPath:options:context:
- removeObserver:fromObjectsAtIndexes:forKeyPath:
- addObserver:toObjectsAtIndexes:forKeyPath:options:context:
インデックスでオブジェクトに指定された相対キーパスのキー値監視者通知を受け取るために、監視者を登録します。
宣言
<< SWIFT >>
func addObserver(_ observer: NSObject, toObjectsAtIndexes indexes: NSIndexSet, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions, context context: UnsafeMutablePointer<Void>) << OBJECTIVE-C >> - (void)addObserver:(NSObject *)anObserver toObjectsAtIndexes:(NSIndexSet *)indexes forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context
パラメータ
anObserver | 監視者。 |
indexes | インデックス(索引)のセット。 |
keyPath | 監視される、配列への相対キーパス。 |
options | 通知に含まれるオプション。 |
context | 通知に渡されるコンテキスト。 |
議論
options は、通知に含まれているかを決定し、context は通知に渡されます。
これは単なるコンビニエンスメソッドではありません。このメソッドを呼び出すと、繰り返し addObserver:forKeyPath:options:context: を呼び出すより潜在的にはるかに高速です。
利用可能
OS X 10.3 以降で利用可能
以下も見よ
- removeObserver:fromObjectsAtIndexes:forKeyPath:
- removeObserver:fromObjectsAtIndexes:forKeyPath:
indexes の位置の配列のオブジェクトに指定された keyPath に関連したすべてのキー値監視通知から anObserver を削除します。
宣言
<< SWIFT >>
func removeObserver(_ observer: NSObject, fromObjectsAtIndexes indexes: NSIndexSet, forKeyPath keyPath: String) << OBJECTIVE-C >> - (void)removeObserver:(NSObject *)anObserver fromObjectsAtIndexes:(NSIndexSet *)indexes forKeyPath:(NSString *)keyPath
パラメータ
anObserver | 監視者。 |
indexes | インデックスのセット。 |
keyPath | 監視すべき、配列への相対キーパス。 |
議論
これは単なるコンビニエンスメソッドではありません。このメソッドを呼び出すと、何度も繰り返し removeObserver:forKeyPath: を呼び出すよりも潜在的にはるかに高速です。
利用可能
OS X 10.3 以降で利用可能
以下も見よ
- addObserver:toObjectsAtIndexes:forKeyPath:options:context:
キー値コーディング
- setValue:forKey:
指定された value と key を使用して、配列の各項目について、setValue:forKey: を起動します。
宣言
<< SWIFT >>
func setValue(_ value: AnyObject?, forKey key: String) << OBJECTIVE-C >> - (void)setValue:(id)value forKey:(NSString *)key
パラメータ
value | オブジェクトの値。 |
key | 値を保存するキー。 |
利用可能
OS X 10.3 以降で利用可能
以下も見よ
- valueForKey:
配列の各オブジェクトの key を使用して、valueForKey: を呼び出した結果を含む配列を返します。
宣言
<< SWIFT >>
func valueForKey(_ key: String) -> AnyObject
<< OBJECTIVE-C >>
- (id)valueForKey:(NSString *)key
パラメータ
key | 回収するべきキー。 |
戻り値
回収されたキーの値。
議論
nil を返す各オブジェクトの NSNULL 要素を含む返された配列。
利用可能
OS X 10.3 以降で利用可能
以下も見よ
定数
NSBinarySearchingOptions
indexOfObject:inSortedRange:options:usingComparator:を使用した検索および挿入するためのオプション。
宣言
<< SWIFT >>
struct NSBinarySearchingOptions : OptionSetType { init(rawValue rawValue: UInt) static var FirstEqual: NSBinarySearchingOptions { get } static var LastEqual: NSBinarySearchingOptions { get } static var InsertionIndex: NSBinarySearchingOptions { get } } << OBJECTIVE-C >> enum { NSBinarySearchingFirstEqual = (1 << 8), NSBinarySearchingLastEqual = (1 << 9), NSBinarySearchingInsertionIndex = (1 << 10), }; typedef NSUInteger NSBinarySearchingOptions;
定数
検索は、与えられたオブジェクトに等しい範囲内の最初のオブジェクトを返すように指定します。
OS X 10.6 以降で利用可能
検索は、与えられたオブジェクトに等しい範囲内の最後のオブジェクトを返すように指定します。
OS X 10.6 以降で利用可能
ソートされた配列を維持するために、オブジェクトを挿入する位置のインデックスを返します。
OS X 10.6以降で利用可能
Import 文
<< OBJECTIVE-C >>
@import Foundation;
<< SWIFT >>
import Foundation
次の章