iphone - Objective-C 属性 - 使用 [self myProperty] 或 self.myProperty 是否比 myProperty 慢?

标签 iphone objective-c properties

我正在使用 Objective-C 属性来为我处理保留/释放实例变量。在我的类里面,我正在做这样的事情:

self.myProperty = somethingIWantToRetain
[self.myProperty doSomeAction]
[self.myProperty doSomethingElse]

对于那些我没有更改 myProperty 值的行,使用 [self myProperty]/self.myProperty 是否比简单地使用 myProperty 慢?例如,以下会更快吗?

self.myProperty = somethingIWantToRetain
[myProperty doSomeAction]
[myProperty doSomethingElse]

谢谢

最佳答案

几乎可以肯定它会慢一点,但这不太重要。

直接引用您的 ivar(使用裸 myProperty)直接访问变量。引用您的属性 getter (具有等效的 self.myProperty[self myProperty])必须调用一个方法,该方法通常会执行 retainautorelease 在你的 ivar 上。

然而,Objective-C 中的方法分配非常非常快,并且保留/自动释放调用也非常便宜,特别是对于那些在自动释放池被清除时可能不会被销毁的对象。我会专注于可读性和一致的风格,只有当你清楚地知道你有性能瓶颈需要追逐时才担心这里的性能。

关于iphone - Objective-C 属性 - 使用 [self myProperty] 或 self.myProperty 是否比 myProperty 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6701365/

相关文章:

iphone - 如何整合html5和iphone应用程序?

iphone - 更改单元格选择的披露指示器颜色

ios - 如何在 Objective C 中创建一个强大的 boolean 值

C# : Make a property for a variable with a different name (shortcut)?

iphone - UIWebView - 在 <img> 标签上启用操作表

ios - 如何将高清图像从 alasset 保存到 ios 中的文档文件夹

iphone - 如何将货币格式文本转换为 double 值或 NSNumber 值?

ios - iOS,如何为有趣的应用程序划粗线?

iphone - 在 iPhone 上仅将完成按钮添加到数字键盘

java - 如何正确避免特定的 UITableViewCell 可编辑?