以下两者之间有什么区别:
SomeClass.h
@interface SomeClass : NSObject {
NSString *someString;
}
@property (strong, nonatomic) NSString *someString;
@end
SomeClass.h
@interface SomeClass : NSObject
@property (strong, nonatomic) NSString *someString;
@end
我知道接口和属性之后{}内的声明之间的区别是什么,但是使用两者之间的区别是什么呢?
答案 0 :(得分:2)
由于LLVM版本4.2编译器不再存在差异。您不再需要在{}。
中声明属性变量答案 1 :(得分:1)
{
NSString *someString;
}
这是一个伊娃。
@property (strong, nonatomic) NSString *someString;
这是一个创建setter和getter(访问器)的属性。此外,还为您创建了一个具有相同名称的类实例。
编辑:
如果您只使用ivar,则无法使用self.ivar名称。
您必须使用_ivar,意味着直接使用ivar。
内部{&受保护。虽然@property是公开的。