《Objective-c》-(内存管理之三:@property的内存管理)
生活随笔
收集整理的這篇文章主要介紹了
《Objective-c》-(内存管理之三:@property的内存管理)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
內存管理之三——《@property的內存管理》
1.@property中與setter內存管理相關的參數
-
retain : release舊值,retain新值(適用于OC對象類型);
-
assign : 直接賦值,(默認,適用于非OC對象類型);
-
copy? : release舊值,copy新值;
2.@property中是否生成setter的參數
-
readonly? : 只會生成getter的聲明和實現;
-
readwrite : 同時生成setter和getter的聲明和實現;
3.@property中與多線程相關的參數
-
nonatomic : 性能高(一般用這個);
-
atomic? : 性能低(默認);
4.@property中設置setter和getter名稱的使用
-
setter : 設置setter方法的名稱,一定要有一個冒號;
-
getter : 設置getter方法的名稱(一般用在BOOL類型中,BOOL類型的getter的方法名,一般都是以is開頭)
5.循環retain和@class
-
@class的作用:僅僅告訴編譯器某個名稱是一個類:比如:@class Person;僅僅是告訴編譯器Person是一個類(內部細節并不知道);
-
開發中引用一個類的規范:
1.在.h文件中用@class來聲明類(不能用#import,否則會出現循環引用的問題);
2.在.m文件中用#import來包含類的所有東西;
-
兩端循環引用的解決對策:
1.一端用retain參數(@property中);
2.一端用assign參數(@property中);注意:用了assign,即調用set方法就不會做retain,就不用在dealloc方法中對此對象做release。
?
轉載于:https://www.cnblogs.com/unique-ios/p/4346066.html
總結
以上是生活随笔為你收集整理的《Objective-c》-(内存管理之三:@property的内存管理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker简单的使用命令
- 下一篇: 央广记者在自律联盟现场采访京都贷执行董事