iOS开发--@property各种属性的区别

  1. assign: 直接赋值, 不进行任何retain操作. 主要适用于NSInteger等基础类型, 以及short/ float/ double/ 结构体等各种数据类型
  2. retain: 对象赋值给该属性时, release旧值(引用计数-1), 再retain新值(引用计数+1)
  3. copy: 被赋值的对象复制一个副本(新内存地址), 再将该副本赋值给该属性. 副本引用计数为1, 原来对象计数不变
  4. atomic/ nonatomic: 是否为原子操作, 主要是指是否线程安全. 若为atomic(默认), 则当一个线程进入setter/ getter的方法体时, 其它线程无法进入该setter/ getter. atomic可以保证对象数据的完整性, 但其线程安全会造成性能下降.
  5. strong/ weak: 只要对象被strong强引用, 该对象就不会被自动回收; 即使对象被weak弱引用, 该对象也可能被回收, 一旦weak指针指向的地址被释放, 这些指针都将被赋值nil(避免了”野指针”)
  6. unsafe_unretained: 与weak类似, 但unsafe_unretained指针所引用的对象被回收后, 该指针不会被赋为nil
  7. readonly/ readwrite: readonly只合成getter方法, 不合成setter方法; readwrite(默认)合成setter和getter方法
  8. getter/ setter: 用于为合成的getter/ setter方法指定自定义方法名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值