我在 Objective C 中有两个数组,我需要找到某个索引是什么,这样我就可以将它插入到同一个地方。例如,假设我有一个“名称数组”和一个“年龄数组”。如何找出“名称数组”中的索引“charlie”,以便知道在“年龄”数组中插入他的年龄的位置?
谢谢
我在 Objective C 中有两个数组,我需要找到某个索引是什么,这样我就可以将它插入到同一个地方。例如,假设我有一个“名称数组”和一个“年龄数组”。如何找出“名称数组”中的索引“charlie”,以便知道在“年龄”数组中插入他的年龄的位置?
谢谢
-[NSArray indexOfObject:]
似乎是合乎逻辑的选择。
在 Cocoa 中,并行数组是通往厄运和毁灭的道路。您不能通过 Bindings 有效地使用它们,因此您将不得不编写大量的胶水代码,就好像 Bindings 不存在一样。此外,在您开始实施之前,您可能打算拥有任何未来的 AppleScript/Scripting Bridge 支持。
正确的方法是创建一个具有name
和age
属性的模型类,并拥有该类的单个实例数组。然后,要按名称或年龄查找项目,请使用NSPredicate
过滤数组,并indexOfObjectIdenticalTo:
从主数组中的过滤数组中查找每个项目的索引。
indexOfObject:
和之间的区别在于indexOfObjectIdenticalTo:
,前者将发送isEqual:
消息以确定每个对象是否是它正在寻找的对象,而后者只会查找您传入的特定对象。因此,您可以使用indexOfObject:
不在其中的对象数组但等于一,即为了在数组中找到相等的对象。
如果您基于字符串进行查找,您可能也只想使用 NSDictionary。