
我的第一个尝试是使用快速枚举:
for (ID item in mySetofObjects) [item action];
它的工作相当不错.然后我想到:
[mySetofObjects makeObjectsPerformSelector:@selector(action)];
现在,我不知道最好的选择是什么.据我所知,这两个解决方案是等效的.但是有一些偏爱一个解决方案的争论呢?
解决方法 我会争辩使用makeObjectsPerformSelector,因为它允许NSSet对象来处理自己的索引,循环和消息分派.编写NSSet代码的人最有可能知道实现该特定循环的最佳方式.最糟糕的是,它们将简单地实现完全相同的循环,所有您获得的是更为清晰的代码(不需要包围循环).最好的是,他们做了一些内部优化,代码实际运行得更快.
Apple的Code Speed Performance文档中的“展开循环”部分简要介绍了该主题.
如果你关心性能,最好的做法是设置一个快速程序,在一组中的对象上执行一些选择器.有几百万次的时间,两个不同的情况之间的时间差.
总结以上是内存溢出为你收集整理的objective-c – Cocoa NSArray / NSSet:-makeObjectsPerformSelector:与快速枚举全部内容,希望文章能够帮你解决objective-c – Cocoa NSArray / NSSet:-makeObjectsPerformSelector:与快速枚举所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)