实例变量是否也获得默认属性属性?

时间:2015-01-23 17:52:30

标签: objective-c

如果我声明一个实例变量

@implementation Person {
    NSString *name;    // would this be atomic, strong, readwrite?
}

它是否获得了相同的默认属性,就像我将其声明为属性一样(atomicstrongreadwrite

@interface Person()
@property NSString *name;    // would be atomic, strong, readwrite by default
@end

2 个答案:

答案 0 :(得分:2)

默认情况下,ivars和局部变量为strong(在ARC下)。除非适用const,否则变量是可读写的。并且变量访问是非原子的,除非采取特定步骤使访问成为原子。

基本上,ivars和局部变量表现为strong, non-atomic, read-write

答案 1 :(得分:1)

不。实例变量根本不会获取atomicstrong等属性 - 这些属性仅适用于属性。 (如果您使用ARC,它们将被视为strong变量。)