property 关键字
nonatomic 非原子操作,没有加锁解锁机制,线程不安全,速度快
atomic 原子操作,有加锁解锁机制线程,安全,效率低
内存
strong---声明对一个不是自己创建的对象的拥有权,这个对象的retainCount +1
retain----同strong
weak-----不引用 它存在的作用就是解决循环引用
copy ---重新复制一个对象出来,好处:和原对象已经脱离关系了,不受外部影响
弊端:内存加大了
assign --------对于C语言的基本类型基本都是assign
readOnly ------只能读 (property 只为我们提供了getter 方法)
readWrite--------默认可读可写,(setter getter)
setter -----更改set方法,建议不要改
getter---
@int 自定义
相当于构造函数,有的时候初始化的时候有一些默认值,还有就是页面加载数据的时机问题,防止加载了也页面再填数据。
声明:
-(instancetype)iniWithName:(NSString*)aName andage:(int)aAge;//自定义的初始化方法必须以int开头实现
实现:
-(instancetype)initWithName:(NSString *)aName andage:(int)aAge{
if(self = [super init]){//调用父类方法init并且判断是否初始化成功
self .name = aName;
self.age = aAge
}
return self;
}
调用:
Person *yql = [[Person alloc]initWithName:@"yql"andage:18];
自定义的三种返回类型
-(Person)*intWithName
-(id)initWithName //id 相当于void
-(instancetype)initWithName//instancetype 对象类型