@property
2019-01-09 本文已影响8人
习惯了_就好
@property的作用
1.生成get和set方法的声明
2.生成set和set方法的简单实现
3.如果没有声明对象的成员变量,它会自动生成一个_开头的成员变量
@property参数分为4类
1.与set方法内存管理相关的参数
retain:生成符合内存管理原则的set方法(应用于对象类型),如,@property (nonatomic,retain)NSString * name;
assign:直接赋值(应用于对象类型,基本数据类型int, float, double, char),如,@property(nonatomic,assign) int age;
copy:
2.与多线程相关
nonatomic:不生成多线程相关代码,iOS开发使用这个就行了,效率相对高一些
atomic:生成多线程相关的代码(默认是使用这种方法)
3.是否要生成get和set方法
readwrite:可读可写属性,同时生成set和get方法
readonly:只读属性,只生成get方法,如,@property(nonatomic,assign,readonly) int idCard;
4.set和get方法名称相关的参数
setter:设置生成set的方法名称
getter:设置生成get的方法名称
如,@property(nonatomic,assign,setter = isMan: ,getter = isMan )BOOL isMan;