IOS Objective-C屬性解析
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
相關文章
- iOS動畫 屬性屬性解析iOS動畫
- iOS UITableView 修改屬性iOSUIView
- iOS 富文字屬性iOS
- Swift iOS : @escaping 屬性SwiftiOSAPI
- Objective-C語言在Category中實現屬性ObjectC語言Go
- C#中屬性的解析C#
- iOS 屬性學習筆記iOS筆記
- 獲取物件屬性型別、屬性名稱、屬性值的研究:反射和JEXL解析引擎物件型別反射
- iOS runtime 給 Category 加屬性iOSGo
- 修復ios不支援fixed屬性iOS
- 關於IOS 屬性atomic(原子性)的理解iOS
- Android解析WindowManager(二)Window的屬性Android
- 深入解析React props和state屬性React
- 屬性動畫 ValueAnimator 執行原理全解析動畫
- spring 自定義屬性解析器Spring
- iOS使用shell指令碼批量修改屬性iOS指令碼
- iOS- 詳解文字屬性AttributesiOS
- iOS-UITableView你需要掌握的屬性iOSUIView
- HTML5 Audio & Video 屬性解析HTMLIDE
- Flex佈區域性分屬性困惑解析Flex
- iOS全域性變數與屬性的記憶體管理iOS變數記憶體
- iOS 6 Objective-C 速成iOSObject
- 收集iOS--UIPageControl的常用屬性iOSUI
- iOS操作屬性列表plist(增刪改查)iOS
- iOS開發-屬性的記憶體管理iOS記憶體
- CMake 屬性之全域性屬性
- Objective-C Runtime 執行時之二:成員變數與屬性Object變數
- CSS動畫屬性關鍵幀keyframes全解析CSS動畫
- spring原始碼深度解析— IOC 之 屬性填充Spring原始碼
- Android View動畫和屬性動畫簡單解析:AndroidView動畫
- velocity中使用evaluate指令動態解析屬性
- Android開發 - 檢視佈局屬性解析Android
- defer 屬性和 async 屬性
- iOS類新增方法、屬性學習筆記iOS筆記
- iOS開發中一些常用的屬性iOS
- iOS 執行時獲取類的所有屬性iOS
- CSS 屬性篇(七):Display屬性CSS
- CMake 屬性之目標屬性