`
mirthor
  • 浏览: 1821 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

iOS性能优化之一:在Objective-C中遍历集合的性能

阅读更多
When enumerating an NSArray:

Use for (id object in array) if enumerating forwards.
Use for (id object in [array reverseObjectEnumerator]) if enumerating backwards.
Use for (NSInteger i = 0; i < count; i++) if you need to know the index value, or need to modify the array.
Try [array enumerateObjectsWithOptions:usingBlock:] if your code might benefit from parallel execution.
When enumerating an NSSet:

Use for (id object in set) most of the time.
Use for (id object in [set copy]) if you need to modify the set (but it will be slow).
Try [set enumerateObjectsWithOptions:usingBlock:] if your code might benefit from parallel execution.
When enumerating an NSDictionary

Use [dictionary enumerateKeysAndObjectsUsingBlock:] most of the time.
Use for (id key in [dictionary allKeys]) if you need to modify the dictionary.
Try [dictionary enumerateKeysAndObjectWithOptions:usingBlock:] if your code might benefit from parallel execution.
Not only are these methods the fastest available, but they’re also all very clear and readable. So remember, sometimes it’s not a choice between writing clean code and fast code; you may find that you can get the best of both worlds.


from:Nick Lockwood  http://iosdevelopertips.com/objective-c/high-performance-collection-looping-objective-c.html
分享到:
评论

相关推荐

    Effective Objective-C 2.0 中文版.zip

    《Effective Objective-C 2.0》是一本针对iOS和Mac OS X开发者的经典书籍,它深入探讨了Objective-C编程语言的高效使用方法。这本书由Mattt Thompson撰写,旨在帮助开发者写出更加优雅、可维护和高性能的代码。中文...

    解锁Objective-C的KVC:深入Key-Value Coding的奥妙

    自1980年代由Brad Cox和Tom Love设计以来,Objective-C经过苹果公司的采纳与改进,成为了macOS和iOS开发中的关键语言之一。尽管Swift语言逐渐成为苹果生态系统的主流选择,但Objective-C仍因其独特的优势在某些领域...

    The Objective-C 2.0 Programming Language

    快速枚举是Objective-C 2.0中新增的一种语法糖,它使得遍历集合变得更加简单和直观。通过使用`for (id obj in someArray)`这样的语句,开发者可以轻松地访问集合中的每个元素。 ##### 3.5 异常处理 Objective-C ...

    Objective-C 2.0 Programming Language

    Objective-C 2.0 在继承了Objective-C 1.0 的优点的基础上,还增加了一些新的特性和优化,使得它成为开发苹果平台(包括macOS和iOS)应用程序的首选语言之一。 #### 特性与优势 ##### 1. 面向对象特性 Objective-C...

    iOS 获取手机的本地音乐

    你可能需要将这些歌曲信息显示在一个表格视图或者集合视图中,此时,可以将查询结果赋值给数据源,然后在cell中显示相关属性。 8. **调试**: 为了调试,你可以创建一个简单的UI按钮,点击后执行上述操作,以便在...

    Objective-C语法之NSSet和NSMutableSet - 魏先宇的程序人生 - 博客频道 - CSDN.NET1

    4. 遍历元素:通过`[set objectEnumerator]`获取一个NSEnumerator实例,然后使用`[enumerator nextObject]`遍历集合中的每一个对象。 5. 比较:`[set isEqualToSet:]`用于比较两个NSSet是否完全相等,`[set ...

    The Objective-C block utilities you always wish you had..zip

    Objective-C 是苹果公司开发的一种面向对象的编程语言,它在iOS和macOS的开发中扮演着重要角色。在这个名为"The Objective-C block utilities you always wish you had"的压缩包中,很显然,它包含了一些用于增强...

    早期的Objective-C编译器源码 NextStep时期的

    Objective-C是一种面向对象的编程语言,它在Apple的生态系统中占据着核心地位,尤其是在iOS和macOS的开发中。NextStep是苹果公司在1980年代末至1990年代初开发的一个操作系统,它是现代macOS和iOS的前身。在NextStep...

    像BOSS 一样过滤 NSObjects 的 NSArrays _Objective-C

    在iOS和macOS开发中,Objective-C是一种广泛使用的编程语言,尤其在Apple的生态系统中。本文将深入探讨如何使用Objective-C来实现一个高效且灵活的过滤机制,特别是针对包含多种自定义NSObject子类的NSArray。标题...

    objecitve-c 2.0 教程

    2. **垃圾回收(Garbage Collection)**:虽然这一特性最终未被集成到 iOS 开发中,但在 Objective-C 2.0 中是支持的。垃圾回收自动管理内存,减少了内存泄漏的风险。 3. **快速枚举(Fast Enumeration)**:提供了...

    ios 各种分类集合类库

    在iOS开发中,"分类"(Category)是一种强大的工具,用于扩展已有类的功能,而无需创建子类。它允许开发者向Objective-C类添加方法,甚至为Foundation和UIKit框架中的系统类添加新功能。集合类库则是一系列专门用于...

    IOS应用源码之Array.rar

    在iOS应用开发中,Array是Objective-C中的一个基础数据结构,它是NSArray类的实例,用于存储和管理有序的对象集合。这个“IOS应用源码之Array.rar”文件很可能包含了一个或多个示例项目,用于演示如何在iOS应用中...

    Objective C 2.0 官方文档

    Objective C 是一种面向对象的编程语言,它在标准C的基础上增加了面向对象的功能,是苹果公司用于开发iOS和macOS应用程序的主要语言之一。Objective C 2.0 是对早期版本的一次重大更新,引入了许多新特性来提高代码...

    高清文字版 - Objc 中国 - 集合类型优化

    `NSOrderedSet`是Objective-C中的有序集合类型。将其转换为Swift版本的过程中需要解决以下几个关键问题: - **查找元素**:确保能够快速定位到集合中的元素。 - **实现`Collection`**:使集合类型支持Swift的`...

    NSPredicate模糊搜索(全方面搜索)支持中文、数字、字母

    在iOS开发中,NSPredicate是Objective-C中的一个强大的类,用于构建查询表达式,它可以用于在数组、集合或Core Data上下文中执行复杂的过滤操作。在本案例中,我们关注的是NSPredicate在实现模糊搜索,特别是支持...

    Algorithm-iOS-Algorithm.zip

    在iOS开发领域,算法起着至关重要的作用,它们是构建高效、优化的应用程序的基础。"Algorithm-iOS-Algorithm.zip"这个压缩包很可能包含了用于iOS开发的一系列算法实现和示例,帮助开发者提升其编程技能,解决实际...

    WebKit和Chromium源码及原理剖析.pdf

    - 性能优化:通过硬件加速、多线程处理等技术提高渲染速度。 - 安全增强:加强隐私保护、防止XSS攻击等。 - 新API支持:如WebAssembly、WebGL等,提供更多元化的Web应用开发能力。 #### 第14篇 利用javascript和...

    【IOS开发】GDataXML解析XML

    GDataXML是Objective-C中的一个库,用于解析XML文档,为iOS开发者提供了方便的API来处理XML内容。这篇博客文章可能详细介绍了如何在iOS应用中使用GDataXML库来解析XML数据。 GDataXML库基于libxml2,这是一个强大的...

Global site tag (gtag.js) - Google Analytics