关于iPhone开发的@properties问题

Dim*_*ris 0 compiler-construction iphone objective-c

根据我的阅读,@ property和@synthesize用于告诉编译器为我们类的各种属性生成getter和setter.

所以当我看到一个Apple示例的源代码GKTank时,我很困惑,它只对整个游戏使用一个类(除了app委托),并且该类的大部分属性仍然在@property()中定义并且被合成,即使没有其他类会尝试获取/设置它们.我在这里误解了什么?

谢谢

Luk*_*ath 5

使用属性通常是很好的做法,因为合成的setter在内存管理方面会做正确的事情(保留或简单地分配,具体取决于你如何配置你的属性).

它们也是在类的公共接口和内部实现之间提供清晰分离的一种方法.

本文提供了一些关于何时以及为何使用属性和点符号的好建议.