根据我的阅读,@properties 和 @synthesize 用于告诉编译器为我们类的各种属性生成 getter 和 setter。
因此,当我看到 Apple 示例 GKTank 的源代码时,我感到很困惑,该示例在整个游戏中仅使用一个类(除了应用程序委托),并且该类的大部分属性仍然在 @property( )并且被合成,即使没有其他类会尝试获取/设置它们。我在这里误解了什么?
使用属性通常是一种很好的做法,因为综合设置器在内存管理方面会做正确的事情(保留或简单分配,具体取决于您如何配置属性)。
它们也是一种在类的“公共接口”与其内部实现之间提供清晰分离的方法。
提供了一些关于何时以及为何使用属性和点表示法的好建议。
self.myProperty = 某事;