次のように NSMutableArray にオブジェクトを追加しています。
[array addObject:myObject];
このオブジェクトが追加された配列インデックスのデリゲートへの参照を送信したいと考えています。後で呼び出すことができるように、オブジェクトが配列に追加されたインデックスを見つける簡単な方法はありますか
[array objectAtIndex:index]
参照を取得するには?
ありがとう!
次のように NSMutableArray にオブジェクトを追加しています。
[array addObject:myObject];
このオブジェクトが追加された配列インデックスのデリゲートへの参照を送信したいと考えています。後で呼び出すことができるように、オブジェクトが配列に追加されたインデックスを見つける簡単な方法はありますか
[array objectAtIndex:index]
参照を取得するには?
ありがとう!
オブジェクトのインデックス (正しくない可能性があります) をデリゲートに渡すのではなく、オブジェクト自体への参照を渡します。-indexOfObject:
デリゲートが配列内のオブジェクトのインデックスを必要とする場合、 Antonio MG が説明するように、デリゲートはそれを使用してそれを把握できます。可変配列内の特定のオブジェクトのインデックスは、オブジェクトが追加、挿入、および削除されると変更される可能性があります。インデックスがいつまでも有効であることを期待することは、カウンターにゼリー サンドイッチを置いておくようなものです。虫を引き寄せることは間違いありません。
可変配列へのアクセスをシリアル化する必要があり、-addObject:
常にオブジェクトを配列の最後に追加します。これらの2つのアサーションが与えられると、次に追加されるオブジェクトのインデックスは常に配列の現在の長さになります。したがって、次のことが当てはまります。
NSUInteger nextIndex = [array count];
[array addObject:myObject];
// you can now tell your delegates that nextIndex is the index of myObject
そのためにこの方法を使用します。
index = [animalOptions indexOfObject:myObject];
[array count] - 1
最後に追加されたオブジェクトはインデックスにあるはずです。最後のインデックスを決定するために、いつでも「count-1」スキームに頼ることができます。
addObjectを呼び出す場合は、常に最後にオブジェクトを追加します(したがって、カウント-1)。「insertObject:atIndex:」を使用してインデックスを指定できます。あなたの質問のために:indexOfObject:
オブジェクトのインデックスを追加した直後はarray.count -1
です。