for循环

作者: 夏了夏天_feea | 来源:发表于2017-09-12 16:01 被阅读0次

    最近遇到一道题怎么优化for循环,平时习惯性用for...in,但一直没有比较过,今天自己总结一下。

    当枚举一个NSArray的时候:

    使用 for (id object in array) 如果是顺序枚举

    使用 for (id object in [array reverseObjectEnumerator]) 如果是倒序枚举

    使用 for (NSInteger i = 0; i < count; i++) 如果你需要知道它的索引值,或者需要改变数组

    尝试 [array enumerateObjectsWithOptions:usingBlock:] 如果你的代码受益于并行执行

    当枚举一个NSSet的时候:

    使用  for (id object in set) 大多数时候

    使用 for (id object in [set copy]) 如果你需要修改集合(但是会很慢)

    尝试 [array enumerateObjectsWithOptions:usingBlock:] 如果你的代码受益于并行执行

    当枚举一个NSDictionary的时候:

    使用  for (id object in set) 大多数时候

    使用 for (id object in [set copy]) 如果你需要修改词典

    尝试 [array enumerateObjectsWithOptions:usingBlock:] 如果你的代码受益于并行执行

    这些方法可能不是最快的,但他们都是非常清晰易读的。所以请记住,有时是在不写干净的代码,和快速的代码之间做出选择,你会发现,你可以在两个世界得到最好的。

    相关文章

      网友评论

          本文标题:for循环

          本文链接:https://www.haomeiwen.com/subject/hobcsxtx.html