iphone – KVC vs快速枚举

iphone – KVC vs快速枚举,第1张

概述以下哪一个更快,为什么? CGFloat sum = 0;for (UIView *v in self.subviews) sum += v.frame.size.height; 要么 CGFloat sum = [[self.subviews valueForKeyPath:@"@sum.frame.size.height"] floatValue]; 真的,很多优雅(或聪明)的语言归 以下哪一个更快,为什么?

CGfloat sum = 0;for (UIVIEw *v in self.subvIEws)    sum += v.frame.size.height;

要么

CGfloat sum = [[self.subvIEws valueForKeyPath:@"@sum.frame.size.height"] floatValue];
解决方法 真的,很多优雅(或聪明)的语言归结于它避免循环的程度.为了甚至快速枚举表达是一个拖累.无论你如何糖衣,循环将是一个代码的块,做一个简单易懂的自然语言描述.

“让我得到这个阵容中所有员工的平均工资”,

double totalSalary = 0.0;for (Employee *employee in employees) {  totalSalary += [employee.salary doubleValue];}double averageSalary = totalSalary / [employees count];

与…

幸运的是,键值编码为我们提供了一个更简洁 – 几乎类似Ruby的方法:

[employees valueForKeyPath:@"@avg.salary"];

KVC集合运算符允许使用valueForKeyPath中的关键路径符号对集合执行 *** 作.

任何时候,在关键路径中看到@,它表示一个特定的聚合函数,其结果可以返回或链接,就像任何其他键路径一样.

快速枚举比KVC快.

希望它可以帮助你.

总结

以上是内存溢出为你收集整理的iphone – KVC vs快速枚举全部内容,希望文章能够帮你解决iphone – KVC vs快速枚举所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1085297.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存