0

我得提问。

假设你有一个数组NSMutableArray myArray;并且它有 nome 个对象。

我可以说:

for (NSObject* anObject in myArray){
  //bla-bla
}

我也可以说:

for (int i = 0; i < myArray.count-1; i ++){
  //bla-bla
} 
  1. 两种方法有什么区别?

  2. 哪种方式更快?

任何建议(或链接,或 tut)表示赞赏。

干杯

4

2 回答 2

3

两个版本不应该有太大的不同,尤其是不明显(除了第二个代码没有迭代所有项目)。如果速度是您想要的一切,您可以使用enumerateObjectsWithOptions:usingBlock:并传递NSEnumerationConcurrent选项同时枚举数组。但是,除此之外,使用两个版本中的任何一个都不会产生影响,因此您应该使用您更喜欢的任何版本。第一个版本的类型密集度肯定较低,并且也适用于其他基础容器类型(NSSet, NSCountedSet, NSDictionary

于 2012-12-26T14:33:15.607 回答
1

在这里查看这篇很棒的帖子:

检查 NSArray 枚举性能

它准确地显示了哪些方法最快,以及为什么。

于 2012-12-26T14:57:57.117 回答