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