NSArray

継承:NSObject(class)

従属:NSObject(protocol)NSMutableCopying,NSSecureCoding,NSFastEnumeration,NSCopying

フレームワーク:OS X 10.0 以降の Foundation。関連項目...



概要(NSArray)


NSArray とそのサブクラスの NSMutableArray は、配列 と呼ばれるオブジェクトの整列した集合を管理します。NSArray は、静的な配列を作成し、NSMutableArray では動的な配列を作成します。オブジェクトの整列したコレクションを必要とするときに、配列を使用できます。


NSArray は、Core Foundation の写し、CFArrayRef と「通話無料で繋がって」います。通話無料で繋がる事の詳細については、「通話無料で繋がる事」 を参照してください。


サブクラス化の注意事項


NSArray をサブクラス化する理由は一般的に小さいです。クラスには、それがオブジェクトの整列したコレクションを、維持するように設計されており、うまく行います。しかし、カスタムの NSArray オブジェクトが便利になる状況があり、いくつかの可能性があります:


  • NSArray が、そのコレクションの要素を格納する方法を変更する時。パフォーマンス上の理由やレガシーコードとの互換性を高めるためにこれを行うでしょう。

  • コレクション(例えば、統計情報の収集) に何が起こっているかについての詳細情報を取得する時。

  • オーバーライドするメソッド


    NSArray のサブクラスは全て、原始的なインスタンス·メソッドである countobjectAtIndex: を上書きしなければなりません。これらのメソッドは、コレクションの要素を提供する支援倉庫で操作する必要があります。この支援倉庫のために、静的な配列、標準の NSArray オブジェクト、または他のいくつかのデータ型やメカニズムを使用できます。また、部分的または完全に、別の実装を提供したい、他の NSArray のメソッドをオーバーライドすることもできます。


    サブクラスが管理している支援倉庫に適している、サブクラスのイニシャライザーを実装することをお勧めします。そうした場合、イニシャライザーは、init または initWithObjects:count: いずれかであり、NSArray クラスの指定イニシャライザーのいずれか一つを呼び出す必要があります。NSArray のクラスは NSCopyingNSMutableCopyingNSCoding プロトコルを採用しています。NSArray のカスタムサブクラスは、これらのプロトコルのメソッドを必要に応じてオーバーライドします。


    NSArrayは、クラスクラスタ用のパブリック・インターフェイスであり、サブクラスの相続者であることを覚えておいてください。サブクラス用の保管場所を提供し、直接その保管場所に基づいて行動するプリミティブ・メソッドを実装する必要があります。


    サブクラス化の代替手段


    NSArray のカスタムサブクラスを作成する前に、NSPointerArray と、対応する Core Foundation のタイプ、CFArray Reference を調査して下さい。 NSArrayCFArray は、「通話無料で繋がっている」ので、あなたは(適切なキャストで) コード内の NSArray オブジェクトを CFArray オブジェクトで置き換えできます。それらは対応している種類ですが、CFArrayNSArray は、同一のインターフェイスや実装を持っておらず、時々 NSArray では簡単にできないことを CFArray で行うことができます。例えば、CFArray は、カスタム保持·放出動作を実装するための、そのうちのいくつかの呼び出しのセットを提供します。これらの呼び出しに NULL で実装を指定する場合は、簡単に非保持配列を取得できます。


    既存のクラスのサプリメントを追加したい行動の場合は、NSArray 上で、カテゴリを書くこともできます。ですがこのカテゴリは、使用する NSArray のすべてのインスタンスに対して有効であり、これは意図しない結果になる可能性があることを、覚えておいてください。あるいは、目的の動作を達成するために合成物を使用することもできます。


    タスク


    配列の作成


    + array


    空の配列を作成し、返します。


    宣言

    << OBJECTIVE-C >>

    +(instancetype)array


    戻り値

    空の配列。


    議論

    このメソッドは、NSArray の mutable サブクラスで使用されています。


    利用可能

    OS X v10.0 以降で利用可能


    以下も見よ

    + arrayWithObject:

    + arrayWithObjects:





    + arrayWithArray:


    他の与えられた配列に含まれるオブジェクトを含む配列を作成し、返します。


    宣言

    << OBJECTIVE-C >>

    + (instancetype)arrayWithArray:(NSArray<ObjectType> *)anArray


    パラメータ

    anArray配列。

    戻り値

    anArray 内のオブジェクトを含む配列。


    利用可能

    OS X v10.0 以降で利用可能


    以下も見よ

    + arrayWithObjects:

    – initWithObjects:





    + arrayWithContentsOfFile:


    与えられたパスで指定されたファイルの内容を含む配列を作成し、返します。


    << OBJECTIVE-C >>

    + (NSArray<ObjectType>)arrayWithContentsOfFile:(NSString *)aPath


    パラメータ

    aPathwriteToFile:atomically: メソッドで生成される配列の文字列表現を含むファイルへのパス。

    戻り値

    aPath で指定されたファイルの内容を含む配列。ファイルの内容が配列に解析できない場合や、ファイルを開けない場合、nil を返します。


    議論


    aPath で識別されるファイル内の配列表現は、プロパティリストオブジェクト(NSString、NSData、NSDate、NSNumber、NSArray、または NSDictionary オブジェクト) だけが含まれていなければなりません。詳細については、プロパティリストプログラミングガイド を参照してください。この配列に含まれるオブジェクトは、配列が可変であっても、不変です。


    利用可能

    OS X v10.0 以降で利用可能


    以下も見よ

    – writeToFile:atomically:




    + arrayWithContentsOfURL:


    与えられた URL で指定された内容を含む配列を作成し、返します。


    宣言

    << OBJECTIVE-C >>

    + (NSArray<ObjectType> *)arrayWithContentsOfURL:(NSURL *)aURL


    パラメータ

    aURLwriteToURL:atomically: メソッドによって生成される配列の文字列表現を含むファイルの場所。

    戻り値

    aURL で指定した内容を含む配列。場所の内容が配列に解析できない場合や場所を開くことができない場合、nil を返します。


    議論

    aURL で識別される場所の配列表現は、プロパティリストオブジェクト(NSString、NSData、NSArray、または NSDictionary オブジェクト)だけが含まれていなければなりません。この配列に含まれるオブジェクトは、配列が可変であっても、不変です。


    利用可能

    OS X v10.0 以降で利用可能


    以下も見よ

    - writeToURL:atomically:





    + 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 以降で利用可能


    以下も見よ

    + array

    + arrayWithObjects:





    + arrayWithObjects:


    引数リスト内のオブジェクトを含む配列を作成し、返します。


    宣言

    + (instancetype)arrayWithObjects:(ObjectType)firstObj,

    , ...


    パラメータ

    firstObj,
    ...
    nil で終わるオブジェクトの、カンマ区切りのリスト。

    戻り値

    引数リスト内のオブジェクトを含む配列。


    議論

    以下のコードの例は、要素の異なる 3 つのタイプを含む配列を作成します。


      << OBJECTIVE-C >>
    1. NSDate *aDate = [NSDate distantFuture];
    2. NSValue *aValue = @(5);
    3. NSString *aString = @"hello";
    4. NSArray *array = [NSArray arrayWithObjects:aDate, aValue, aString, nil];


      << SWIFT >>

    1. let aDate = NSDate.distantFuture()
    2. let aValue = 5
    3. let aString = "hello"
    4. let array = NSArray(objects: aDate, aValue, aString)


    あるいは、与えられたオブジェクトを含む配列を作成するための Objective-C と Swift で配列リテラル構文を使用できます。


    << OBJECTIVE-C >>

    NSArray *array = @[@"alpha", @"bravo", @"charlie"];


    << SWIFT >>

    let array: NSArray = ["alpha", "bravo", "charlie"]


    利用可能

    OS X v10.0 以降で利用可能


    以下も見よ

    + array

    + arrayWithObject:




    + arrayWithObjects:count:


    与えられた C 言語の配列から、与えられた数のオブジェクトを含む配列を作成し、返します。


    宣言

    << OBJECTIVE-C >>

    + (instancetype)arrayWithObjects:(const ObjectType _Nonnull[])objects
    		 count:(NSUInteger)count


    パラメータ

    objectsオブジェクトの C 言語の配列。
    count新しい配列に含まれる、objects の C 言語配列からの値の数。この数は新しい配列数のカウントであり、それは負の値または objects の要素の数より​​大きくてはいけません。

    戻り値

    objects からの最初の count オブジェクトを含む新しい配列。


    議論

    要素は、objects に現れるのと同じ順序で新しい配列に追加されますが、インデックスの count の数を含めていません。たとえば、次のように:


    1. NSString *strings[3];
    2. strings[0] = @"First";
    3. strings[1] = @"Second";
    4. strings[2] = @"Third";
    5. NSArray *stringsArray = [NSArray arrayWithObjects:strings count:2];
    6. // strings array contains { @"First", @"Second" }

    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - getObjects:range:





    配列の初期化


    - init 指定イニシャライザ


    新しく割り当てられた配列を初期化します。


    宣言

    << SWIFT >>

    init()


    << OBJECTIVE-C >>

    - (instancetype)init


    戻り値

    配列。


    議論

    immutable 配列は、この方法でで初期化された後は、変更できません。


    このメソッドは、指定イニシャライザです。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - initWithObjects:





    - initWithArray:


    与えられた配列に含まれるオブジェクトの中に配置することによって、新しく割り当てられた配列を初期化します。


    宣言

    << SWIFT >>

    convenience init(array array: [AnyObject])


    << OBJECTIVE-C >>

    - (instancetype)initWithArray:(NSArray *)anArray


    パラメータ

    anArray配列。

    戻り値

    anArray 内のオブジェクトを含むように初期化される配列。返されるオブジェクトは、元の受信者とは異なる場合があります。


    議論

    immutable 配列は、この方法で初期化された後は、変更できません。


    利用可能

    OS X 10.0 以降で利用可能

    以下も見よ

    + arrayWithObject:

    - initWithObjects:





    - initWithArray:copyItems:


    配列用のデータ·オブジェクトのソースとして anArray を使用して、新しく割り当てられた配列を初期化します。


    宣言

    << SWIFT >>

    convenience init(array array: [AnyObject],
           copyItems flag: Bool)


    << OBJECTIVE-C >>

    - (instancetype)initWithArray:(NSArray<ObjectType> *)array
                        copyItems:(BOOL)flag


    パラメータ

    arrayどの新しい配列を初期化するべきか、というオブジェクトを含む配列。
    flagYES の場合、オブジェクトのコピーを作成するため、array 内の各オブジェクトは、copyWithZone: メッセージを受け取り、オブジェクトは NSCopying プロトコルに準拠していなければなりません。管理されたメモリ環境では、これは、オブジェクトが他の方法で受け取る、retain メッセージの代わりです。オブジェクトのコピーは、その後、返される配列に追加されます。


    NO の場合、管理されたメモリ環境なので、それは返される配列に追加されたときに、array 内の各オブジェクトは、単に retain メッセージを受信します。


    戻り値

    配列はオブジェクトを含むように初期化され、flagYES の場合には、array 内のオブジェクトのコピーを返します。返されるオブジェクトは、元の受信者とは異なる場合があります。


    議論

    immutable 配列は、この方法で初期化された後は、変更できません。


    copyWithZone: メソッドは、浅いコピーを実行します。あなたがちょっとした深さのコレクションを持っている場合は、flag パラメータに YES を渡し、表面下の最初のレベルの immutable コピーを実行して下さい。あなたが最初のレベルの mutable 配列に NO を渡した場合には影響を受けません。いずれの場合でも、どの深さのレベルの配列の不変性も影響を受けません。


    利用可能

    OS X 10.2 以降で利用可能

    以下も見よ

    - init

    - initWithArray:

    + arrayWithObject:

    - initWithObjects:





    - initWithContentsOfFile:


    与えられたパスで指定されたファイルの内容で新しく割り当てられた配列を初期化します。


    宣言

    << SWIFT >>

    convenience init?(contentsOfFile path: String)


    << OBJECTIVE-C >>

    - (NSArray<ObjectType> *)initWithContentsOfFile:(NSString *)aPath


    パラメータ

    aPathwriteToFile:atomically: メソッドで生成された配列の表現を含むファイルへのパス

    戻り値

    aPath で指定された、ファイルの内容を含む初期化された配列か、またはファイルを開くことができないか、ファイルの内容が配列へと解析できない場合 nil を返します。返されるオブジェクトは、元の受信者とは異なる場合があります。


    議論

    aPath で識別されるファイル内の配列表現は、プロパティリストオブジェクト(NSString、NSData、NSArray、または NSDictionary オブジェクト) のみを含んでいる必要があります。この配列に含まれるオブジェクトは、配列が可変であっても、不変です。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    + arrayWithContentsOfFile:

    - writeToFile:atomically:





    - initWithContentsOfURL:


    与えられた URL で指定された場所の内容で、新しく割り当てられた配列を初期化します。


    宣言

    << SWIFT >>

    convenience init?(contentsOfURL url: NSURL)


    << OBJECTIVE-C >>

    - (NSArray<ObjectType> *)initWithContentsOfURL:(NSURL *)aURL


    パラメータ

    aURLwriteToURL:atomically: メソッドによって生成された配列の文字列表現を含むファイルの場所

    戻り値

    aURL で指定されたコンテンツを含むように初期化された配列。場所が開けない場合や場所の内容が配列に解析できない場合、nil を返します。返されるオブジェクトは、元の受信者とは異なる場合があります。


    議論

    aURL で識別される場所の配列表現は、プロパティリストオブジェクト(NSString、NSData、NSArray、または NSDictionary オブジェクト) のみを含んでいる必要があります。この配列に含まれるオブジェクトは、配列が可変であっても、不変です。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    + arrayWithContentsOfURL:

    - writeToURL:atomically:

    宣言

    NSArray.h




    - initWithObjects:


    引数リスト内の、オブジェクトの中に配置することで、新しく割り当てられた配列を初期化します。


    宣言

    << OBJECTIVE-C >>

    - (instancetype)initWithObjects:(ObjectType)firstObj

    ,...


    パラメータ

    firstObj,
    ...
    nil で終わるオブジェクトのカンマ区切りリスト。

    戻り値

    引数リスト内のオブジェクトを含むように初期化された配列。返されるオブジェクトは、元の受信者とは異なる場合があります。


    議論

    不変の配列は、この方法で初期化された後は、変更できません。


    このメソッドは、指定イニシャライザです。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    cinit

    - initWithObjects:count:

    + arrayWithObjects:

    - initWithArray:





    - initWithObjects:count: 指定イニシャライザ


    与えられた C 言語の配列から、与えられたオブジェクトの数が含まれるように新しく割り当てられた配列を初期化します。


    宣言

    << SWIFT >>

    init(objects objects: UnsafePointer<AnyObject?>,
           count cnt: Int)


    << OBJECTIVE-C >>

    - (instancetype)initWithObjects:(const ObjectType _Nonnull [])objects
                              count:(NSUInteger)count


    パラメータ

    objectsC 言語型のオブジェクトの配列。
    count新しい配列に含めるべき、objects の C 言語型の配列からの値の数。この数は新しい配列のカウントです - それは負の値または objects の要素数より​​大きくてはいけません。

    戻り値

    objects から最初の count のオブジェクトを含む、新しく割り当てられた配列。返されるオブジェクトは、元の受信者とは異なる場合があります。


    議論

    要素は、objects に表われるのと同じ順序で新しい配列に追加され、インデックスの count まで至りますが、それを含められません。


    不変(immutable)の配列は、この方法で初期化された後は、変更できません。


    このメソッドは、指定イニシャライザです。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - initWithObjects:

    + arrayWithObjects:

    - initWithArray:





    配列の照会


    - containsObject:


    指定されたオブジェクトが配列内に存在するかどうかを示すブール値を返します。


    宣言

    << SWIFT >>

    func containsObject(_ anObject: AnyObject) -> Bool


    << OBJECTIVE-C >>

    - (BOOL)containsObject:(ObjectType)anObject


    パラメータ

    anObjectオブジェクト。

    戻り値

    配列の中に anObject がある場合は、YES、それ以外の場合は、NO


    議論

    IsEqual: メッセージに引数として渡される、各配列の要素は、インデックス 0 から始まり、一致が見つかった場合、または配列の末端に到達するまで anObject に送り続けられます。(NSObject プロトコルで宣言された) isEqualYES を返せば、オブジェクトは等しいと見なされます。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - indexOfObject:

    - indexOfObjectIdenticalTo:





    - 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 に、配列内のすべてのオブジェクトをコピーするメソッド。バッファのサイズは、したがって、次の例に示すように、少なくともオブジェクト参照のサイズを掛けた配列の数でなければなりません(これは単なる一例であることに注意して下さい。配列の内容を、反復処理するために、単純にバッファを作成しないでください。)



    1. NSArray *mArray = // ...;
    2. id *objects;
    3. NSUInteger count = [mArray count];
    4. objects = malloc(sizeof(id) * count);
    5. [mArray getObjects:objects];
    6. for (i = 0; i < count; i++) {
    7.         NSLog(@"object at index %d: %@", i, objects[i]);
    8. }
    9. free(objects);

    特別な考慮事項

    潜在的にバッファオーバーランが発生する可能性があるため、旧式のメソッドは、安全ではありません。


    利用可能

    OS X 10.0 以降で利用可能

    OS X 10.6 で旧式となりました。


    以下も参照

    + arrayWithObjects:count:





    - 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 オブジェクトにコピーします。そのため次の例に示すように、バッファのサイズは、少なくてもオブジェクト参照のサイズを掛けた範囲の長さでなければなりません(これは全くイラスト向きです - 配列の内容を読み書きするためだけに、通常はバッファを作成しないでしょう)。


    1. NSArray *mArray = // an array with at least six elements...;
    2. id *objects;
    3. NSRange range = NSMakeRange(2, 4);
    4. objects = malloc(sizeof(id) * range.length);
    5. [mArray getObjects:objects range:range];
    6. for (i = 0; i < range.length; i++) {
    7.         NSLog(@"objects: %@", objects[i]);
    8. }
    9. 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 が配列の最後を超えている場合(つまり、indexcount で返される値に等しいかそれ以上の場合には) NSRangeException のエラーが発生します。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - count

    - objectsAtIndexes:

    - objectAtIndexedSubscript:





    - objectAtIndexedSubscript:


    指定されたインデックスにあるオブジェクトを返します。


    宣言

    << SWIFT >>

    subscript (_ idx: Int) -> AnyObject { get }


    << OBJECTIVE-C >>

    - (ObjectType)objectAtIndexedSubscript:(NSUInteger)idx


    パラメータ

    idx配列の範囲内のインデックス。

    戻り値

    index に位置するオブジェクト。


    議論

    指数index が配列の最後を超えている場合(つまり、indexcount で返される値に等しいかそれ以上の場合には) NSRangeException のエラーが発生します。


    このメソッドは、objectAtIndex:と同じです。


    利用可能

    OS X 10.8 以降で利用可能


    以下も見よ

    - count

    - objectAtIndex:





    - objectsAtIndexes:


    与えられたインデックスセットで指定されたインデックスの配列内のオブジェクトを含む配列を返します。


    宣言

    << SWIFT >>

    func objectsAtIndexes(_ indexes: NSIndexSet) -> [AnyObject]


    << OBJECTIVE-C >>

    - (NSArray<ObjectType> *)objectsAtIndexes:(NSIndexSet *)indexes


    戻り値

    indexes で指定されたインデックスの配列内のオブジェクトを含む配列。


    議論

    返されたオブジェクトは、indexes 内のそのインデックスの昇順のオブジェクトであるため、指数の高いインデックスを持つ返された配列内のそのオブジェクトは、indexes が小さいインデックスを持つオブジェクトに続きます。


    indexes 内の任意の場所が配列の範囲を超えた場合や indexesnil の時、NSRangeException エラーが発生します。


    利用可能

    OS X 10.4 以降で利用可能


    以下も見よ

    - count

    - objectAtIndex:





    - objectEnumerator


    配列内の各オブジェクトにアクセスできる、列挙子オブジェクトを返します。


    宣言

    << SWIFT >>

    func objectEnumerator() -> NSEnumerator


    << OBJECTIVE-C >>

    - (NSEnumerator<ObjectType> *)objectEnumerator


    戻り値

    配列内の各オブジェクトにアクセスできる、列挙子オブジェクトで、最小のインデックス位置にある要素から順番に上へとなっています。


    議論

    インデックス 0 の要素から始まって、順に、配列内の各オブジェクトにアクセスすることができる列挙子オブジェクトを返します。次のように:


    1. NSEnumerator *enumerator = [myArray objectEnumerator];
    2. id anObject;
    3. while (anObject = [enumerator nextObject]) {
    4.         /* code to act on each element as it is returned */
    5. }

    特別な考慮事項

    NSArray mutable サブクラスでこのメソッドを使用するときは、列挙中に配列を変更してはなりません。


    高速列挙プロトコルを使用する方が効率的です(NSFastEnumeration を参照のこと)。高速列挙は、OS X v10.5 以降および iOS 2.0 以降で利用可能です。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - reverseObjectEnumerator

    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 以降で利用可能


    以下も見よ

    - objectEnumerator

    nextObject (NSEnumerator)





    配列内のオブジェクトの検索


    - indexOfObject:


    与えられたオブジェクトと対応する配列の値が等しい最小のインデックスを返します。


    宣言

    << SWIFT >>

    func indexOfObject(_ anObject: AnyObject) -> Int


    << OBJECTIVE-C >>

    - (NSUInteger)indexOfObject:(ObjectType)anObject


    パラメータ

    anObjectオブジェクト。

    戻り値

    対応する配列の値で最小のインデックスが anObject に等しいです。配列内のオブジェクトのどれもが anObject に等しくしない場合には、NSNotFound を返します。


    議論

    IsEqual: メッセージに引数として渡される、各配列の要素は、インデックス 0 から始まり、一致が見つかった場合、または配列の末端に到達するまで anObject に送り続けられます。(NSObject プロトコルで宣言された) isEqualYES を返せば、オブジェクトは等しいと見なされます。


    利用可能

    OS X 10.0 以降で利用可能

    以下も見よ

    - containsObject:

    - indexOfObjectIdenticalTo:





    - indexOfObject:inRange:


    与えられたオブジェクトと等しい対応する配列の指定された範囲内で最小のインデックスを返します。


    宣言

    << SWIFT >>

    func indexOfObject(_ anObject: AnyObject,
               inRange range: NSRange) -> Int
    
    << OBJECTIVE-C >>
    - (NSUInteger)indexOfObject:(ObjectType)anObject
                        inRange:(NSRange)range


    パラメータ

    anObjectオブジェクト。
    rangeanObject を検索する中での配列内のインデックスの範囲。

    戻り値

    anObject に等しい、対応する配列の値の range 内で最小のインデックス。range 内のオブジェクトのどれも anObject に等しくしない場合には、NSNotFound を返します。


    議論

    range.location から始めて、IsEqual: メッセージが配列の各要素に渡され anObject に送信され、一致する物が見つかるか、範囲の終わりに到達するまで続けられます。isEqual:YES を返す場合、オブジェクトは等しいと見なされます。


    range パラメータが配列に存在しない範囲を表す場合は、このメソッドは NSRangeException のエラーを発生させます。


    利用可能

    OS X 10.0 以降で利用可能

    以下も見よ

    - containsObject:

    - 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オブジェクト。
    rangeanObject を検索する中での、配列内のインデックスの範囲。

    戻り値

    対応する配列値の 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 がテストに合格したかどうかを示すブール値を返します。

    戻り値

    対応する配列内の値が、predicateopts で指定されたテストに合格したかどうかのインデックス。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 を指定することができます。



    重要:ブロックパラメータまたは indexSetnil の場合、このメソッドでは例外が発生します。



    利用可能

    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 を指定することができます。



    重要:ブロックパラメータまたは indexSetnilの場合 、このメソッドでは例外が発生します。



    利用可能

    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 の例外が起こります。
    robj を検索するための配列内の範囲。
    r が配列の範囲を超えた場合(範囲の長さプラス位置が配列の数よりも大きい場合)、 NSRangeException のエラーが起こります。
    opts検索のためのオプション。可能な値については、NSBinarySearchingOptions を参照してください。
    NSBinarySearchingFirstEqualNSBinarySearchingLastEqual の両方を指定した場合、NSInvalidArgumentException の例外が起こります。
    cmp配列の要素でオブジェクト obj を比較するために使用されるコンパレータブロックです。
    この値が NULL の場合、NSInvalidArgumentException の例外が起こります。

    戻り値

    NSBinarySearchingInsertionIndex オプションが指定されていない場合:


  • obj が見つかり、NSBinarySearchingFirstEqualNSBinarySearchingLastEqual も指定されていない場合、任意の一致するオブジェクトのインデックスを返します。
  • NSBinarySearchingFirstEqual オプションも指定されている場合は、一致したオブジェクトのうち最小のインデックスを返します。
  • NSBinarySearchingLastEqual オプションも指定されている場合は、一致したオブジェクトのうち最大インデックスを返します。
  • オブジェクトが見つからない場合は、NSNotFound を返します。
  • NSBinarySearchingInsertionIndex オプションが指定されている場合は、ソートされた配列を維持するために、obj を挿入する位置のインデックスを返します。

  • obj が見つかり、NSBinarySearchingFirstEqualNSBinarySearchingLastEqual も指定されていない場合、一致するすべてのオブジェクトのインデックスと同じか1より大きいインデックスを返します。
  • NSBinarySearchingFirstEqual オプションも指定されている場合は、一致したオブジェクトのうち最小のインデックスを返します。
  • NSBinarySearchingLastEqual オプションも指定されている場合は、一致したオブジェクトのうち最大のインデックスを返します。
  • オブジェクトが見つからない場合は、オブジェクトが他のすべての要素よりも大きい場合は、配列の最後のインデックスか、少なくとも大きなオブジェクトのインデックスを返します。

  • 特別な考慮事項

    配列内の要素は、すでにコンパレータ cmp を使用してソートされている必要があります。配列がソートされていない場合、結果は未定義です。


    利用可能

    OS X 10.6 以降で利用可能





    メッセージを要素に送信


    - makeObjectsPerformSelector:


    配列内の各々のオブジェクトに、与えられたセレクタで識別されるメッセージを送信し、最初のオブジェクトで始まり、最後のオブジェクトまで続く配列。


    宣言

    << OBJECTIVE-C >>

    - (void)makeObjectsPerformSelector:(SEL)aSelector


    パラメータ

    aSelector配列内のオブジェクトに送信するメッセージを識別するセレクタ。メソッドは引数を取ってはならず、受信配列を変更するという副作用があってはなりません。

    議論

    aSelectorNULL の場合、このメソッドは NSInvalidArgumentException の例外を発生させます。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - makeObjectsPerformSelector:withObject:





    - makeObjectsPerformSelector:withObject:


    配列内の各オブジェクトに aSelector メッセージを送信し、最初のオブジェクトから始まり、最後のオブジェクトまで続きます。


    宣言

    << OBJECTIVE-C >>

    - (void)makeObjectsPerformSelector:(SEL)aSelector
    	 			withObject:(id)anObject


    パラメータ

    aSelector配列内のオブジェクトに送信するメッセージを識別するセレクタ。このメソッドは、id 型の単一の引数を取る必要があり、受信配列を変更するという副作用があってはなりません。
    anObjectaSelector メソッドを呼び出すたびに引数として送信するオブジェクト。

    議論

    aSelectorNULL の場合、このメソッドは NSInvalidArgumentException の例外を発生させます。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - makeObjectsPerformSelector:





    - 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:

    - 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 以降で利用可能


    以下も見よ

    - enumerateObjectsUsingBlock:

    - makeObjectsPerformSelector:

    - 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 を指定できます。


    このメソッドは同期的に実行されます。



    重要:ブロックパラメータまたは indexSetnil の場合は、このメソッドでは例外が発生します。



    利用可能

    OS X 10.6 以降で利用可能


    以下も見よ

    - enumerateObjectsUsingBlock:

    - makeObjectsPerformSelector:

    - makeObjectsPerformSelector:withObject:





    配列の比較


    - firstObjectCommonWithArray:


    別の与えられた配列内のオブジェクトと等しい受信配列に含まれる最初のオブジェクトを返します。


    宣言

    << SWIFT >>

    func firstObjectCommonWithArray(_ otherArray: [AnyObject]) -> AnyObject?


    << OBJECTIVE-C >>

    - (ObjectType)firstObjectCommonWithArray:(NSArray<ObjectType> *)otherArray


    パラメータ

    othrArray配列。

    戻り値

    otherArray 内のオブジェクトと等しい受信配列に含まれる最初のオブジェクトを返します。そのようなオブジェクトが見つからない場合、nil を返します。


    議論

    このメソッドでは、オブジェクトが等しい事をチェックするのに、IsEqual: を、使っています。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - containsObject:





    - 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 を最後に加えて受信した配列をコピーした、新しい配列。


    議論

    anObjectnil の場合、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 の前半に見られる要素を含む配列を作成します。



    1. NSArray *halfArray;
    2. NSRange theRange;
    3. theRange.location = 0;
    4. theRange.length = [wholeArray count] / 2;
    5. 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 オブジェクトの配列) と、このタイプの比較関数では:



    1. NSInteger intSort(id num1, id num2, void *context)
    2. {
    3.         int v1 = [num1 intValue];
    4.         int v2 = [num2 intValue];
    5.         if (v1 < v2)
    6.                 return NSOrderedAscending;
    7.         else if (v1 > v2)
    8.                 return NSOrderedDescending;
    9.         else
    10.                 return NSOrderedSame;
    11. }




    anArray の並べ替えられたバージョンは以下のように作成されます:


    NSArray *sortedArray.; sortedArray = [anArray sortedArrayUsingFunction:intSort context:NULL];


    利用可能

    OS X 10.0 以降で利用可能

    以下も見よ

    - sortedArrayUsingDescriptors:

    - sortedArrayUsingFunction:context:hint:

    - sortedArrayUsingSelector:





    - 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 の追加と削除、ここで PN よりはるかに小さい)、概念上は元のソート中にしていた作業を再利用でき、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:

    - sortedArrayUsingSelector:





    - sortedArrayUsingDescriptors:


    ソート記述子で与えられた配列によって指定された、並べ替えられた受信配列のコピーを返します。


    宣言

    << SWIFT >>

    func sortedArrayUsingDescriptors(_ sortDescriptors: [NSSortDescriptor]) -> [AnyObject]


    << OBJECTIVE-C >>

    - (NSArray<ObjectType> *)sortedArrayUsingDescriptors:(NSArray<NSSortDescriptor *> *)sortDescriptors


    パラメータ

    sortDescriptorsNSSortDescriptor オブジェクトの配列。

    戻り値

    sortDescriptors によって指定された、並べ替えられた受信配列のコピー。


    議論

    最初の記述子は、受信配列の内容を並べ替えるのに使用される主キーのパスを指定します。その後の記述子は、さらに重複する値を持つオブジェクトの並べ替えを改良するために使用されます。詳細については NSSortDescriptor を参照してください。


    利用可能

    OS X 10.3 以降で利用可能


    以下も見よ

    - sortedArrayUsingSelector:

    - 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 が存在すると仮定すると、配列の並べ替えられたバージョンでは、この方法で作成できます。



    1. NSArray *sortedArray =
    2.         [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 "と書き込みます。



    1. NSArray *pathArray = [NSArray arrayWithObjects:@"here", @"be", @"dragons", nil];
    2. 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個のスペースを使うには level0 にに設定し、またはタブのキャラクタで出力をインデントするには 1 に設定します。

    戻り値

    プロパティリストとしてフォーマットされた、配列の内容を表す文字列。


    議論

    返された NSString オブジェクトは、最初から最後まで順番に、配列の要素のそれぞれの文字列表現を含んでいます。与えられた要素の文字列表現は、descriptionWithLocale:indent: で以下のように進行します。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - description

    - descriptionWithLocale:

    宣言

    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 でそれを展開する必要があります。
    flagYES の場合、配列は補助ファイルに書き込まれ、その後、補助ファイルは、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配列を書き込むべき場所。
    flagYES の場合、配列は補助の場所に書き込まれ、その後、補助位置の名前は aURL に変更されます。NO の場合、配列は aURL に直接書き込まれます。YES オプションは、aURL を保証し、それがすべて存在している場合、システムが書き込み中にクラッシュした場合でも、破損しません。

    戻り値

    場所に書き込むのが成功した場合 YES、そうでなければ NO


    議論

    配列の内容が、すべてプロパティリストオブジェクト(NSString、NSData、NSArray、または NSDictionary オブジェクト) である場合、このメソッドで書き込まれる場所は、クラスメソッド arrayWithContentsOfURL: かインスタンスメソッド initWithContentsOfURL: で新しい配列を初期化するために使用することができます。


    利用可能

    OS X 10.0 以降で利用可能


    以下も見よ

    - initWithContentsOfURL:





    パスの収集


    - 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


    パラメータ

    observerKVO 通知を登録するオブジェクト。オブザーバーは、キー値を観察するメソッドである、observeValueForKeyPath:ofObject: change:context: を実装しなければなりません。
    keyPath監視するプロパティの、配列への相対的キーパス。この値は nil であってはなりません。
    options監視の通知に何が含まれているかを指定する NSKeyValueObservingOptions 値の組み合わせ。
    contextobserveValueForKeyPath:ofObject:change:context: 内の observer に渡される任意のデータ。

    特別な考慮事項

    NSArray オブジェクトは監視できないため、NSArray オブジェクト上で呼び出されると、このメソッドは例外を発生させます。配列を監視する代わりに、配列は、関連するオブジェクトのコレクションであるため対多の関係を監視して下さい。


    利用可能

    OS X v10.4 以降で利用可能。


    以下も見よ

    - removeObserver:forKeyPath:

    - 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監視者として削除すべきオブジェクト。
    keyPathKVO 変更通知を受け取るように登録されている 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監視者として削除すべきオブジェクト。
    keyPathKVO 変更通知を受け取るように登録されている observer のセットへの相対キーのパス。この値は nil であってはなりません。
    context通知に合格したコンテキスト。

    特別な考慮事項

    NSArray オブジェクトは監視できないため、NSArray オブジェクト上で呼び出されると、このメソッドは例外を発生させます。配列を監視する代わりに、配列は、関連するオブジェクトのコレクションであるために対多の関係を監視して下さい。


    利用可能

    OS X 10.7 以降で利用可能


    以下も見よ

    - addObserver:forKeyPath:options:context:

    - removeObserver:forKeyPath:





    - 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監視者として削除すべきオブジェクト。
    keyPathKVO 変更通知を受け取るように登録されている 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:


    指定された valuekey を使用して、配列の各項目について、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:





    - valueForKey:


    配列の各オブジェクトの key を使用して、valueForKey: を呼び出した結果を含む配列を返します。


    宣言

    << SWIFT >>

    func valueForKey(_ key: String) -> AnyObject


    << OBJECTIVE-C >>

    - (id)valueForKey:(NSString *)key


    パラメータ

    key回収するべきキー。

    戻り値

    回収されたキーの値。


    議論

    nil を返す各オブジェクトの NSNULL 要素を含む返された配列。


    利用可能

    OS X 10.3 以降で利用可能


    以下も見よ

    - setValue:forKey:





    定数


    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;
    


    定数

  • NSBinarySearchingFirstEqual

  • 検索は、与えられたオブジェクトに等しい範囲内の最初のオブジェクトを返すように指定します。


    OS X 10.6 以降で利用可能


  • NSBinarySearchingLastEqual

  • 検索は、与えられたオブジェクトに等しい範囲内の最後のオブジェクトを返すように指定します。


    OS X 10.6 以降で利用可能


  • NSBinarySearchingInsertionIndex

  • ソートされた配列を維持するために、オブジェクトを挿入する位置のインデックスを返します。


    OS X 10.6以降で利用可能


    Import 文

    << OBJECTIVE-C >>

    @import Foundation;


    << SWIFT >>

    import Foundation





    次の章
    目次
    Xcode の新機能
  • NSObject(class)

  • NSArray
  • 概要(NSArray)
  • サブクラス化の注意事項
  • オーバーライドするメソッド
    サブクラス化の代替手段
  • タスク
  • array
    arrayWithArray:
    arrayWithContentsOfFile:
    arrayWithContentsOfURL:
    arrayWithObject:
    arrayWithObjects:
    arrayWithObjects:count:
  • 配列の初期化
  • init
    initWithArray:
    initWithArray:copyItems:
    initWithContentsOfFile:
    initWithContentsOfURL:
    initWithObjects:
    initWithObjects:count: 指定イニシャライザ
  • 配列の照会
  • containsObject:
    count プロパティ
    getObjects:
    getObjects:range:
    firstObject プロパティ
    lastObject プロパティ
    objectAtIndex:
    objectAtIndexedSubscript:
    objectsAtIndexes:
    objectEnumerator
    reverseObjectEnumerator
  • 配列内のオブジェクトの検索
  • indexOfObject:
    indexOfObject:inRange:
    indexOfObjectIdenticalTo:
    indexOfObjectIdenticalTo: inRange:
    indexOfObjectPassingTest:
    indexOfObjectWithOptions: passingTest:
    indexOfObjectAtIndexes:options: passingTest:
    indexesOfObjectsPassingTest:
    indexesOfObjectsWithOptions: passingTest:
    indexesOfObjectsAtIndexes:options: passingTest:
    indexOfObject:inSortedRange:options: usingComparator:
  • メッセージを要素に送信
  • makeObjectsPerformSelector:
    makeObjectsPerformSelector: withObject:
    enumerateObjectsUsingBlock:
    enumerateObjectsWithOptions: usingBlock:
    enumerateObjectsAtIndexes:options: usingBlock:
  • 配列の比較
  • firstObjectCommonWithArray:
    isEqualToArray:
  • 新しい配列を受け継ぐ
  • arrayByAddingObject:
    arrayByAddingObjectsFromArray:
    filteredArrayUsingPredicate:
    subarrayWithRange:
  • 並べ替え
  • sortedArrayHint プロパティ
    sortedArrayUsingFunction:context:
    sortedArrayUsingFunction:context: hint:
    sortedArrayUsingDescriptors:
    sortedArrayUsingSelector:
    sortedArrayUsingComparator:
    sortedArrayWithOptions: usingComparator:
  • 文字列要素の操作
  • componentsJoinedByString:
  • 説明の作成
  • description
    descriptionWithLocale:
    descriptionWithLocale:indent:
  • 配列の保存
  • writeToFile:atomically:
    writeToURL:atomically:
  • パスの収集
    pathsMatchingExtensions:
  • キー値監視
  • addObserver:forKeyPath:options: context:
    removeObserver:forKeyPath:
    removeObserver:forKeyPath:context:
    removeObserver:fromObjectsAtIndexes: forKeyPath:context:
    addObserver:toObjectsAtIndexes: forKeyPath:options:context
    removeObserver:fromObjectsAtIndexes: forKeyPath:
  • キー値コーディング
    setValue:forKey:
    valueForKey:
  • 定数
  • NSBinarySearchingOptions
    文書改定履歴












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)












    トップへ(NSArray)