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

assign、nonatomic、copy、strong等指示符的作用整理

时间:2015-08-16 19:40:22      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

当我们使用@property定义属性时,发现在@property关键字与类型之间经常会添加一些额外的指示符,本文整理了这些指示符作用。

assign:

  该指示符指定对属性只是进行简单地赋值,不更改对所附的值的引用计数。该指示符主要适用于NSInteger等基本类型,以及short,float,double,结构体等各种C数据类型。

atomic(nonatomic):

  指定合成的存取方法是否为原子操作。原子操作指是否线程安全,如果使用atomic,那么该合成的存取方法是线程安全的,即当一个线程进入存取方法的方法体后,其他线程无法进入该存取方法,保证了数据的完整性,atomic是默认值。但是atomic的线程安全同样会造成性能下降,所以在大多数单线程环境中都会使用nonatomic来提高访问性能。

copy:

  使用该指示符,那么当使用setter方法对成员变量进行赋值时,会将被赋值的对象赋值一个副本,再将该副本赋值给成员变量。copy指示符会将原成员变量所引用对象的引用计数减一。

strong(weak):

  strong指示符指定该属性对被赋值对象持有强引用,weak指示符指定该属性对被赋值对象持有弱引用。强引用是指,只要该引用指向被赋值的对象,那么该对象就不会自动回收。弱引用是指,及时该引用指向被赋值的对象,该对象也可能被回收。

 

assign、nonatomic、copy、strong等指示符的作用整理

标签:

原文地址:http://www.cnblogs.com/mooney/p/4734789.html

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