没有合适的资源?快使用搜索试试~ 我知道了~
IOS property属性 原子性 atomic nonatomic 访问权限 readWrite readOnly 内存管理 strong retain copy assign weak unsafe_unretained 方法命名 getter = <name> setter = <name> 结论 1、原子性 (1)atomic 原子性,可以理解成就是生成getter、setter方法时,编译器会自动为程序添加同步锁,减少因为在不同的线程中同时对同一个内存地址进行读写操作,而产生的二意
资源推荐
资源详情
资源评论
IOS property属性详细介绍使用注意事项属性详细介绍使用注意事项
IOS property属性属性
原子性原子性
atomic
nonatomic
访问权限访问权限
readWrite
readOnly
内存管理内存管理
strong
retain
copy
assign
weak
unsafe_unretained
方法命名方法命名
getter = <name>
setter = <name>
结论结论
1、原子性
(1)atomic
原子性,可以理解成就是生成getter、setter方法时,编译器会自动为程序添加同步锁,减少因为在不同的线程中同
时对同一个内存地址进行读写操作,而产生的二意性、数据混乱的情况。
但同步锁也不能一定保证能完全阻止同时读写的情况发生,而且同步锁会耗费较多资源,降低程序的效率,因此不
建议使用,但atomic是默认的特性。
(2)nonatomic
非原子性,也就是不添加同步锁,读写效率会高,但需要开发人员注意同时读写的情况,可以使用gcd的栏栅和同步
方法来保证。
2、访问权限、访问权限
(1)readWrite
生成getter、setter方法,并生成实例变量指针,但对于静态库类是无法修改的,所以即使能进入头文件也无法修
改。
(2)readOnly
只生成getter方法,可以用于数据保护,在interface中把属性声明了readOnly,在continue-class中再把属性声明为
readWrite,就能实现私有属性的效果,从而有更好的封装特性,但其实通过KVC
依然可以从外部修改属性,但不建议这样使用。
3、内存管理、内存管理
(1)strong:strong是推出ARC自动计数后后添加的属性,效果与retain基本一致,都是在setter方法中,对旧数值
release,对新数值retain。
(2)retain与strong基本一致
(3)assign:简单赋值操作,通常针对普通类型,既不release,也不retain
(4)copy:能更好实现上下文环境保护。对旧值release,对新值进行copy操作,immutable+copy = 不可变浅复
制,mutable+copy = 不可变深复制。
(5)weak:weak特性,并不会持有对象,当指向对象的指针全撤销后,对象释放,指针置nil,这常用于block的保留环
(6)unsafe_unretained:不会持有对象,但引用对象,对象释放后,会产生野指针,主要用于兼容以前的方法。
4、方法命名、方法命名
资源评论
weixin_38522552
- 粉丝: 5
- 资源: 922
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功