我正在向 NSMutableArray 添加一个对象,如下所示:
[array addObject:myObject];
我现在想向添加此对象的数组索引的代表发送一个引用。有没有一种简单的方法可以找出我的对象在数组中添加的索引,以便稍后我可以调用
[array objectAtIndex:index]
获得参考?
谢谢!
我正在向 NSMutableArray 添加一个对象,如下所示:
[array addObject:myObject];
我现在想向添加此对象的数组索引的代表发送一个引用。有没有一种简单的方法可以找出我的对象在数组中添加的索引,以便稍后我可以调用
[array objectAtIndex:index]
获得参考?
谢谢!
与其将对象的索引(可能不正确)传递给您的委托,不如传递对对象本身的引用。如果委托需要数组中对象的索引,它可以使用-indexOfObject:
Antonio MG 描述的方法自行计算。可变数组中任何给定对象的索引可以随着对象的添加、插入和删除而改变。指望指数在任何时期都保持有效就像在柜台上放一个果冻三明治——它肯定会吸引虫子。
您需要序列化对可变数组的访问,并-addObject:
始终将对象添加到数组的末尾。鉴于这两个断言,您知道下一个添加对象的索引将始终是数组的当前长度。所以以下将成立:
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 你总是在最后添加对象(所以 count - 1)。您可以使用“insertObject:atIndex:”来指定索引。对于您的问题:indexOfObject:
添加对象的索引后直接是array.count -1
.