iOS开发之详解@property属性(copy,strong,weak,nonatomic,readwrite等)
2015-02-06 11:18
525 查看
@property一般可存放三种类型的属性,一般我们可以选择其中的一种或者即为@property(A,B,C)
a.第一种表示的是可读性
readonly:表示该变量只是可读,但是不能修改。
readwrite:表示变量的值既可读也可以修改。
b.第二种表示原子性
natomic:默认属性,在多线程情况下会生成一些互斥加锁代码,避免变量的读写不同步的问题。
nonatomic:非原子性访问,不加同步,多线程并发访问会提高性能。
c.第三种表示内存管理
assign:setter 方法直接赋值,引用计数器不会增加,为了解决原类型与环循引用问题,一般用于简单的数据类型int,float等就用它。
retain:使用reatin的话,赋值的时候引用计数器会+1,防止被内存释放掉。拷贝类型属于指针拷贝。
copy:使用copy的话,赋值的时候引用计数器会+1,防止被内存释放掉。拷贝类型属于内容拷贝。
strong:强引用,其存亡直接决定了所指对象的存亡。如果不存在指向一个对象的引用,并且此对象不再显示列表中,则此对象会被从内存中释放。简单讲strong等同于retain。
weak:弱引用,不决定对象的存亡。即使一个对象被持有无数个若引用,只要没有强引用指向他,那麽其还是会被清除。简单讲weak比assign多一个功能,就是当对象消失之后会自动把指针变为nil。
a.第一种表示的是可读性
readonly:表示该变量只是可读,但是不能修改。
readwrite:表示变量的值既可读也可以修改。
b.第二种表示原子性
natomic:默认属性,在多线程情况下会生成一些互斥加锁代码,避免变量的读写不同步的问题。
nonatomic:非原子性访问,不加同步,多线程并发访问会提高性能。
c.第三种表示内存管理
assign:setter 方法直接赋值,引用计数器不会增加,为了解决原类型与环循引用问题,一般用于简单的数据类型int,float等就用它。
retain:使用reatin的话,赋值的时候引用计数器会+1,防止被内存释放掉。拷贝类型属于指针拷贝。
copy:使用copy的话,赋值的时候引用计数器会+1,防止被内存释放掉。拷贝类型属于内容拷贝。
strong:强引用,其存亡直接决定了所指对象的存亡。如果不存在指向一个对象的引用,并且此对象不再显示列表中,则此对象会被从内存中释放。简单讲strong等同于retain。
weak:弱引用,不决定对象的存亡。即使一个对象被持有无数个若引用,只要没有强引用指向他,那麽其还是会被清除。简单讲weak比assign多一个功能,就是当对象消失之后会自动把指针变为nil。
相关文章推荐
- IOS属性(@property)的修饰词assign、weak、strong、retain、copy、nonatomic、atomic、readonly、readwrite解释、以及一部分内存优化方法
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- iOS中定义成员变量时@property(nonatomic, copy/strong/assign/weak)小结
- iOS开发中@property的属性weak nonatomic strong readonly
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- iOS开发中@property的属性weak nonatomic strong readonly
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- @property详解:nonatomic,retain,copy,assign,weak,strong
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- iOS 关键字 copy,assign,strong,retain,weak,readonly,readwrite,nonatomic,atomic,unsafe_unretained的使用与区别
- 属性的特性assign,retain,copy,strong,weak,nonatomic,atomic,readonly,readwrite的区别与介绍
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- [iOS基础控件 - 6.12.3] @property属性 strong weak copy
- iOS开发中@property的属性weak nonatomic strong readonly等介绍
- iOS中 property中的属性strong 、weak、copy 、assign 、retain 、unsafe_unretained 与autoreleasing区别和作用详解
- iOS开发中@property的属性weak nonatomic strong readonly等介绍