我在Objective C中有两个数组,我需要找到什么索引,所以我可以将它插入到同一个地方。例如,假设我有一个“名字数组”和一个“年龄数组”。如何找出“charlie”在“名称数组”中的索引,以便知道将其年龄插入“age”数组的位置?
由于
答案 0 :(得分:38)
-[NSArray indexOfObject:]
似乎是合乎逻辑的选择。
答案 1 :(得分:6)
在Cocoa中,并行数组是毁灭和毁灭的途径。你不能在Bindings中有效地使用它们,所以你必须编写很多胶水代码,就好像Bindings不存在一样。此外,您甚至可以在开始实施之前删除任何未来AppleScript / Scripting Bridge支持。
正确的方法是创建一个具有name
和age
属性的模型类,并拥有该类的单个实例数组。然后,要按名称或年龄查找项目,请使用NSPredicate
过滤数组,并使用indexOfObjectIdenticalTo:
查找主数组中已过滤数组中每个项目的索引。
indexOfObject:
和indexOfObjectIdenticalTo:
之间的区别在于前者会发送isEqual:
消息以确定每个对象是否是它正在寻找的对象,而后者只会查找特定对象您传入的对象。因此,您可以将indexOfObject:
与不在数组中的对象一起使用但是等于一个对象,以便在数组中找到相等的对象。
答案 2 :(得分:4)
如果你正在根据字符串进行查找,你可能只想使用NSDictionary。