Possible Duplicate:
Properties and Instance Variables in Objective-C 2.0


当我在第一种情况下使用@property和@synthesize以及@property和@synthesize并声明相同的实例变量时,有什么区别?因为两者似乎都起作用。

最佳答案

没什么区别:将使用您声明的实例变量,并且其ARC属性将被声明的@property的这些属性覆盖。

属性的指定所有权保留在其元数据中,否则除非包含属性,否则含义纯属常规。如果合成了属性,则关联的实例变量是实例变量,该实例变量可能由@synthesize声明隐式命名。 如果关联的实例变量已经存在,则其所有权条件必须等于属性的所有权;否则,所有权条件必须等于属性的所有权。否则,将使用该所有者资格创建实例变量。

最好避免为打算使用@synthesize的属性声明实例变量。如果您喜欢使用其他名称的实例变量,则可以将合成语法与ivar名称一起使用:

@synthesize myproperty = _myivar;

关于objective-c - 使用属性声明实例变量或不声明实例变量有什么区别? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11511005/

10-13 05:05