nullable 可空类型。
nonatomic 禁止多线程,变量保护,提高性能。
atomic 提供多线程安全。是oc使用的一种线程保护技术,是防止在未完成的时候被另外一个线程读取,造成数据错误。而这种机 制是耗费系统资源的,所以在Iphone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。
null_resettable 来表示setter nullable,但是getter nonnnull。
assign 对基础数据类型(NSInteger,CGFloat)和C数据类型(int,float,double,char)等等。
retain 此属性只能用于OC对象类型。retain会增加对象的引用计数,而基本数据类型或者core Foundation对象都没有引用计数。
copy 深拷贝。拷贝出完全独立的对象。指针指向也是不同的。
在Xcode4.5及以后的版本中,可以省略@synthesize,编译器会自动加上getter和setter方法。
instancetype 只能作为返回值,不能像id那样作为参数。只能用于方法的返回类型。对于init方法,id和instancetype是没有区别的,因为编译器会把id优化成instancetype。当明确返回的类型就是当前的Class时,使用instancetype能避免id带来的编译不出的错误情况。
typedef struct{
int A;
int B;
} MY_TYPE;
可以指定getter方法或setter方法的名字,而不需要默认的以变量名或set+变量名命名的方法
@property (nonatomic,assign,getter=isEAle) BOOL eAle;
@property (nonatomic,assign) BOOL eEle;
- (BOOL)isEAle{
return NO;
}
- (BOOL)eEle{
return YES;
}