【发布时间】:2011-03-11 05:13:58
【问题描述】:
这两个 NSArray 方法有什么区别?
【问题讨论】:
标签: objective-c nsarray
这两个 NSArray 方法有什么区别?
【问题讨论】:
标签: objective-c nsarray
indexOfObjectIdenticalTo 检查完全相同的id(相同地址)。 indexOfObject 检查 isEqual: 是否返回 YES。
【讨论】:
indexOfObjectIdenticalTo: 比indexOfObject: 快很多数量级。尽管两者都不是特别快。如果你想要高性能,你应该考虑使用NSSet
第一个使用isEqual: 查找匹配的对象,而第二个查找相同的对象(即位于同一内存位置的对象)。
【讨论】:
NSString * 时,isEqual: 和 isEqualToString: 的行为相同。两者之间的唯一区别是轻微的性能优势和isEqualToString: 提供的静态类型检查,这与indexOfObject: 的上下文无关。
indexOfObjectIdenticalTo 比 indexOfObject 快得多,但它使用指针比较 == 而不是调用 isEqual:
如果您正在搜索指针匹配,请始终使用 indexOfObjectIdenticalTo 以获得最佳性能
【讨论】: