@property属性

@property会自动创建setter和getter方法
1.strong和weak
声明一个变量时,属性设置为strong或weak,表示这个对象存在堆中,栈中有指针指向这个对象。
strong:强表示保持对这个存储,在堆中保持这个所指的东西,只要有任何一个强指针指向它,引用计数加1,oc会追踪每一个指向堆中对象的强指针,只要有一个强指针存在,就会将其留在堆中,只有不存在任何强指针时,它会从堆中立刻被释放掉。
weak:弱会告诉oc我有一个指针指向堆中的这个,只要还有强指针指向它,就将它留在内存中,只要不再有强指针指向它,内存就会释放,此时这个弱指针会被设置为nil,nil表示这个指针不再指向任何东西。其他语言如果指针为空时会出现程序崩溃,但oc不会,发送消息给nil指针,不会执行任何代码,如果这个消息有返回值,会返回0给它。
*只要这个对象不再有任何指针指向它,就会从堆中释放掉。强和弱的区别就是,如果是弱指针,即使当前有指针指向它,也可以释放掉。比如页面的网络请求,发送网络请求后又返回上一页面,此时会被立刻释放内存。
2.assign:一般用于基本数据类型的属性声明,没有引用计数问题。基本数据类型不存储在堆中,比如bool,int,float等。
3.retain和copy
retain是指针拷贝,一个新的指针指向还是原来的对象;copy是对象拷贝,指针指向与原对象相同内容的内存区域,不改变原对象内容。
4.nonatomic和atomic
nonatomic:非原子性的,非线程安全。对于iOS ui在ui线程执行,数据在model线程执行,两个线程进行线程间通信,不需要线程安全,这样简单有效。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值