IOS Objective-C屬性解析

weixin_34107955發表於2017-06-29

1.atomic 和 nonatomic 關係

atomic: 是原子操作,表示不能再繼續分,用於多執行緒操作,因為是原子操作,涉及比較多的上鎖,解鎖,所以效能比較差。
nonatomic: 非原子操作,系統預設就是這個屬性。

2.readwrite 和readonly

readwrite: 是預設的屬性,表示可以對物件進行讀和寫,會生成物件相應的setter和getter方法。
readonly: 表示只允許讀取物件的值,只會生成物件的getter方法。

3.assign 是預設屬性,只可以對基本資料型別(如CGFloat,NSInteger,Bool,int,代理物件)等使用。該方式會對物件直接賦值而不會進行retain操作

4.strong 和 weak
strong: 強引用,預設屬性,例如一個Label屬性,在一個UIView裡面,就是強引用.
weak: 弱引用,指標主要用於“父-子”關係,父親擁有一個兒子的strong指標,因此父親是兒子的所有者;但為了阻止所有權迴圈(迴圈引用),兒子需要使用weak指標指向父親。
典型例子是delegate模式,你的ViewController通過strong指標(self.view)擁有一個UITableView, UITableView的dataSource和delegate都是weak指標,指向你的ViewController

5.copy
一般NSMutableString 那種可變的都用copy,因為copy會深拷貝,如果原來的值變了的話,copy屬性不會收到影響。這就是用copy的場景,馬德終於搞清楚了。下面總結比較全面。
http://blog.csdn.net/runintolove/article/details/50767523

相關文章