0

次のように NSMutableArray にオブジェクトを追加しています。

[array addObject:myObject];

このオブジェクトが追加された配列インデックスのデリゲートへの参照を送信したいと考えています。後で呼び出すことができるように、オブジェクトが配列に追加されたインデックスを見つける簡単な方法はありますか

[array objectAtIndex:index] 

参照を取得するには?

ありがとう!

4

6 に答える 6

2

オブジェクトのインデックス (正しくない可能性があります) をデリゲートに渡すのではなく、オブジェクト自体への参照を渡します。-indexOfObject:デリゲートが配列内のオブジェクトのインデックスを必要とする場合、 Antonio MG が説明するように、デリゲートはそれを使用してそれを把握できます。可変配列内の特定のオブジェクトのインデックスは、オブジェクトが追加、挿入、および削除されると変更される可能性があります。インデックスがいつまでも有効であることを期待することは、カウンターにゼリー サンドイッチを置いておくようなものです。虫を引き寄せることは間違いありません。

于 2012-04-19T15:18:50.523 に答える
1

可変配列へのアクセスをシリアル化する必要があり、-addObject:常にオブジェクトを配列の最後に追加します。これらの2つのアサーションが与えられると、次に追加されるオブジェクトのインデックスは常に配列の現在の長さになります。したがって、次のことが当てはまります。

NSUInteger nextIndex = [array count];
[array addObject:myObject];
// you can now tell your delegates that nextIndex is the index of myObject
于 2012-04-19T15:11:06.730 に答える
0

そのためにこの方法を使用します。

index = [animalOptions indexOfObject:myObject];
于 2012-04-19T15:10:22.503 に答える
0

[array count] - 1最後に追加されたオブジェクトはインデックスにあるはずです。最後のインデックスを決定するために、いつでも「count-1」スキームに頼ることができます。

于 2012-04-19T15:10:24.077 に答える
0

addObjectを呼び出す場合は、常に最後にオブジェクトを追加します(したがって、カウント-1)。「insertObject:atIndex:」を使用してインデックスを指定できます。あなたの質問のために:indexOfObject:

于 2012-04-19T15:11:14.463 に答える
-1

オブジェクトのインデックスを追加した直後はarray.count -1です。

于 2012-04-19T15:11:00.263 に答える