【发布时间】:2023-04-05 12:27:01
【问题描述】:
可能重复:
Why should I use @properties?
When to use properties in objective C?
我已经用 Objective-c 编程一年多了,我一直觉得使用 @property 和 @synthesize 是一种惯例。但它们真正服务的目的是什么?它们是否仅用于在类之间进行交流?因此,例如,如果我仅在声明它的类的范围内使用 NSMutableDictionary,那么省略是可以的。 ?
另一个问题:
如果我设置 NSMutableDictionary 的属性,它会被保留,对吗?所以,在我的课堂上,我不必调用 alloc() 和 init(),对吗? 使用属性的规则是什么?
【问题讨论】:
-
当您记得
@property声明只是声明-setFoo:和-foo方法时,这个问题本质上与其他语言(如 C++ 和 Java)一直在问的问题相同:"你应该使用访问器方法还是直接访问实例变量?”。在 Objective-C 的情况下,还有安全内存管理的问题。 -
我已经知道,设置了 getter 和 setter。但是引擎盖下还会发生什么?如果我只声明一个不带 @property 的 NSMutableDictionary,我还能像以前一样在我的课堂上使用它吗?我不想让其他班级知道他们。
-
eschatologist.net/blog/?p=160>
-
@MikeWeller 不太一样;请务必记住,您几乎从未直接在 Objective-c 中访问 ivars。
-
stackoverflow.com/questions/8194281, stackoverflow.com/questions/3649227, stackoverflow.com/questions/785059, stackoverflow.com/questions/4299487 stackoverflow.com/questions/1082284, stackoverflow.com/questions/2989830, stackoverflow.com/questions/4333797, stackoverflow.com/questions/10137016, stackoverflow.com/questions/4945091
标签: iphone objective-c ipad properties