objective-c - 是否应该尽可能避免反转 NSMutableArray?

标签 objective-c cocoa-touch nsmutablearray enumeration

假设我有 NSNumbers 1 - 450。我可以选择将它们添加到一个 NSMutableArray 中,要么从 1 开始到 450 结束,要么从 450 开始到 1 结束。如果我可以从1 并以 450 结尾,但是当我最终需要枚举数组时,我最终需要反转它。换句话说,我需要枚举中的第一个对象为 450,最后一个对象为 1。

因为如果我这样做的话我的代码会更简单(从 1 开始添加,然后在枚举之前反转它),这是我的首选方法。但是,- (NSEnumerator *)reverseObjectEnumerator 的 Apple 文档说:

It is more efficient to use the fast enumeration protocol (see NSFastEnumeration). Fast enumeration is available on Mac OS X v10.5 and later and iOS 2.0 and later.

那么我是否应该避免数组反转并简单地编写稍微复杂一些的代码,以便首先以所需的顺序创建 NSMutableArray?

最佳答案

您可以使用 NSEnumerator 实例进行快速枚举,documentation关于快速枚举甚至以reverseObjectEnumerator:方法为例:

NSEnumerator *enumerator = [array reverseObjectEnumerator];
for (NSString *element in enumerator) {
    //...
}

此外,您的问题听起来很像过早的优化...

关于objective-c - 是否应该尽可能避免反转 NSMutableArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7409114/

相关文章:

ios - 不需要的信息显示在 NSString 的文本标签中

ios - 如何在 viewDidLayoutSubviews 中获得正确的 View 高度?

ios - NSMutableDictionary - EXC BAD ACCESS - 同时读/写

objective-c - 可变副本与其他创建方式的区别

objective-c - 保留数组上的 dealloc 崩溃。程序收到信号 : “EXC_BAD_ACCESS”

objective-c - 检查并删除 NSSet 中的对象

ios - UILabel 和 UITextField 的动画(Facebook POP 框架)

ios - ipad相机界面方向

ios - 将 UITableView 添加为 subview

iphone - 我们什么时候有 NSArray 和 NSDictionary 这么有用的创建者了