0

我正在向 NSMutableArray 添加一个对象,如下所示:

[array addObject:myObject];

我现在想向添加此对象的数组索引的代表发送一个引用。有没有一种简单的方法可以找出我的对象在数组中添加的索引,以便稍后我可以调用

[array objectAtIndex:index] 

获得参考?

谢谢!

4

6 回答 6

2

与其将对象的索引(可能不正确)传递给您的委托,不如传递对对象本身的引用。如果委托需要数组中对象的索引,它可以使用-indexOfObject:Antonio MG 描述的方法自行计算。可变数组中任何给定对象的索引可以随着对象的添加、插入和删除而改变。指望指数在任何时期都保持有效就像在柜台上放一个果冻三明治——它肯定会吸引虫子。

于 2012-04-19T15:18:50.523 回答
1

您需要序列化对可变数组的访问,并-addObject:始终将对象添加到数组的末尾。鉴于这两个断言,您知道下一个添加对象的索引将始终是数组的当前长度。所以以下将成立:

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 你总是在最后添加对象(所以 count - 1)。您可以使用“insertObject:atIndex:”来指定索引。对于您的问题:indexOfObject:

于 2012-04-19T15:11:14.463 回答
-1

添加对象的索引后直接是array.count -1.

于 2012-04-19T15:11:00.263 回答