如何确定Objective C中的数组索引?

时间:2009-07-16 02:02:41

标签: objective-c cocoa search nsmutablearray nsarray

我在Objective C中有两个数组,我需要找到什么索引,所以我可以将它插入到同一个地方。例如,假设我有一个“名字数组”和一个“年龄数组”。如何找出“charlie”在“名称数组”中的索引,以便知道将其年龄插入“age”数组的位置?

由于

3 个答案:

答案 0 :(得分:38)

-[NSArray indexOfObject:]似乎是合乎逻辑的选择。

答案 1 :(得分:6)

在Cocoa中,并行数组是毁灭和毁灭的途径。你不能在Bindings中有效地使用它们,所以你必须编写很多胶水代码,就好像Bindings不存在一样。此外,您甚至可以在开始实施之前删除任何未来AppleScript / Scripting Bridge支持。

正确的方法是创建一个具有nameage属性的模型类,并拥有该类的单个实例数组。然后,要按名称或年龄查找项目,请使用NSPredicate过滤数组,并使用indexOfObjectIdenticalTo:查找主数组中已过滤数组中每个项目的索引。

indexOfObject:indexOfObjectIdenticalTo:之间的区别在于前者会发送isEqual:消息以确定每个对象是否是它正在寻找的对象,而后者只会查找特定对象您传入的对象。因此,您可以将indexOfObject:与不在数组中的对象一起使用但是等于一个对象,以便在数组中找到相等的对象。

答案 2 :(得分:4)

如果你正在根据字符串进行查找,你可能只想使用NSDictionary。

相关问题