Objective c 实例变量是否也获取默认属性属性?
如果我声明一个实例变量Objective c 实例变量是否也获取默认属性属性?,objective-c,Objective C,如果我声明一个实例变量 @implementation Person { NSString *name; // would this be atomic, strong, readwrite? } 它是否获得与我声明它为属性时相同的默认属性(atomic,strong,readwrite) 没有。实例变量根本不获取诸如原子的、强的等属性——这些只是应用于属性的属性。(如果使用ARC,它们将被视为strong变量。)默认情况下,IVAR和局部变量是strong(在ARC下)。除非适
@implementation Person {
NSString *name; // would this be atomic, strong, readwrite?
}
它是否获得与我声明它为属性时相同的默认属性(atomic
,strong
,readwrite
)
没有。实例变量根本不获取诸如
原子的
、强的
等属性——这些只是应用于属性的属性。(如果使用ARC,它们将被视为strong
变量。)默认情况下,IVAR和局部变量是strong
(在ARC下)。除非适当使用const
,否则变量是读写的。变量访问是非原子的,除非采取具体步骤使访问原子化
因此,本质上,IVAR和局部变量的行为是
强、非原子、读写
,而IVAR没有像属性那样的“属性”,默认情况下,IVAR是强
,可以应用修饰符来更改默认值。@rmaddy:在ARC下,它们被视为强。我会更新回复。关于ARC的澄清很好。
@interface Person()
@property NSString *name; // would be atomic, strong, readwrite by default
@end