iOS - 直接使用getter / setter方法或属性是否更好?

时间:2012-03-28 11:39:06

标签: ios properties getter-setter

我知道这些属性封装了getter和setter方法。所以每当我们说 myObject.property1我们实际上调用了[myObject property1]。从Apple文档,斯坦福iOS课程和示例代码中我可以看到鼓励使用属性。我认为使用属性可以使代码看起来更好,更容易理解但是性能呢?如果我写一个巨大的应用程序将使用属性对性能有明显的影响?专业人士通常更喜欢直接的制定者和吸气剂方法或属性吗?

5 个答案:

答案 0 :(得分:3)

使用括号表示法([myObject property1])或.表示法(myObject.property1)时,效果没有差异。

这更像是一种编码风格,所以如果不单独工作,请使用您熟悉的符号或与团队相同的符号。

答案 1 :(得分:2)

属性可能更好,因为它们会自动为您生成方法,当您合成它们时,您可以这样做:

@synthesize property = _property

避免任何混淆

您也可以选择不同的功能/方法:

           (nonatomic, retain) // or (readonly) etc.

它还可以更好地处理内存

答案 2 :(得分:1)

属性绝对是首选。顺便说一下,@synthesize语句会自动生成getter和setter。没有任何报告可以证明使用setter / getter来改变性能。

答案 3 :(得分:1)

属性语法直接转换为getter / setter调用。我不知道编译需要更长的时间,或者是否存在差异,但是当程序运行时代码执行是相同的。

答案 4 :(得分:1)

当您使用声明的属性时,getter和setter是在编译时生成的,因此与自己声明getter和setter相比,对性能没有任何影响。

比照http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html

相关问题