码迷,mamicode.com
首页 > 其他好文 > 详细

OC中属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?

时间:2014-08-13 14:47:56      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:style   使用   strong   数据   代码   size   ad   on   

此次只做简单说明,不做代码演示!

1> readwrite:同时生成get方法和set方法的声明和实现

2> readonly:只生成get方法的声明和实现

3> assignset方法的实现是直接赋值,用于基本数据类型

4> retainset方法的实现是release旧值,retain新值,用于OC对象类型

5> copyset方法的实现是release旧值,copy新值,用于NSStringblock等类型

6> nonatomic:非原子性,set方法的实现不加锁(比atomic性能高)

注意点:(nonatomic)非原子性访问,对属性赋值的时候不加锁,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。(atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所 以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。

OC中属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?,布布扣,bubuko.com

OC中属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?

标签:style   使用   strong   数据   代码   size   ad   on   

原文地址:http://www.cnblogs.com/lcblg/p/3909955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!