property,synthesize
1、默认访问跟property同名的成员变量。
如: 有成员变量 int age ; int age1;
@property int age;
@sythesize age;
则代表的是成员变量age的getter和setter方法。
2、使用property和synthesize时,可以省略该成员变量的声明。如果没有声明成员变量则,默认的成员变量是property后的变量前加_;
如:@property int age, 默认成员变量是 _age;
3、@property(参数1,参数2) 类型 名字;参数可有可无。
参数主要分为3类
a、读写属性:readwrite/readonly,默认为readwrite,表示可以访问setter和getter方法,如果为readonly,则表示只能访问get方法。
b、setter处理:assign/retain/copy, 默认为assign直接赋值,如一般变量int;retain表示release旧值,retain新值;
c、原子性:atomic/nonatomic,默认为atomic,提供多线程安全,代表给setter方法和getter方法加锁,保证线程安全。nonatomic表示禁止多线程,提高性能。
atomic是OC使用的一种线程保护技术,防止在写入未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iphone这种小型设
备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。
浙公网安备 33010602011771号