3) 自動釋放池的 建立:
4) 自動釋放池的 使用:
5) 自動釋放池的 疑問:
6) 自動釋放池的 注意:
2) 原理:
3) 原則:
4) 析構方法:
5) assign 修飾符:
2) 弱引用 weak:
2) 對部分檔案做修改(混編):
// person.h
+ (instancetype)person;
// person.m
+ (instancetype)person
// viewcontroller.m
// 宣告 assign 物件
@property (nonatomic, assign) person *p;
// alloc/init 初始化方式
/*mrc 中,assign 修飾符號,對物件不做任何操作,只是簡單的記錄位址,物件出了作用域後才會被釋放
*/self.p = [[person alloc] init];
// 類方法初始話方式
/*mrc 中,所有返回 instancetype 的系統類方法,返回的物件都是 autorelease 的
*/self.p = [person person];
// person.h
+ (instancetype)person;
// person.m
+ (instancetype)person
// viewcontroller.m
// 宣告 weak 物件
@property (nonatomic, weak) person *p;
// alloc/init 初始化方式
/*arc 中,如果給 weak 做 alloc/init 的初始話,xcode 會提示,如果物件建立後沒有被其他任何物件強引用,會被立即釋放
*/// 沒有對 alloc 的物件做強引用,會被立即釋放,使用 strong 則不會被立即釋放
self.p = [[person alloc] init];
// 對 alloc 的物件做強引用,不會被立即釋放,出了作用於後會被釋放
nsstring *str = [[[person alloc] init] description];
// 類方法初始話方式
/*對於 xcode 編譯器而言,只要是類方法,就不會提示。結果之所以為 null,是因為 weak 建立後沒有被其他任何物件強引用,
會被立即釋放,跟 autorelease 沒有關係
*/// 沒有對建立的物件做強引用,會被立即釋放,使用 strong 則不會被立即釋放
self.p = [person person];
// 對建立的物件做強引用,不會被立即釋放,出了作用於後會被釋放
nsstring *str = [[person person] description];
解決方法:引入自動釋放池,有兩種解決方案。
提問:那種方式效率高。
iOS OC命名規範
正文 通過讀寫大量 我有自己的一套程式設計思路和習慣,自認為自己的編碼習慣還是不錯的,結構也算清晰,因為我一直以來都是 看的多寫的多,但是總結的比較少,知識經常不成體系。以後多花點時間把自己的經驗和學習知識加以總結一下吧,這樣有利於去指導新人,也更有利於加深自己的知識認知。今天就從 規範入手總結一下...
記憶體管理 記憶體管理概述
儲存器的發展方向是高速 大容量和小體積,即儲存器嘗試更高讀寫速度,更大儲存容量,更小物理體積。在計算機中,常見的儲存器有 暫存器,快取,記憶體,硬碟,一般硬碟之類的輔助儲存器又稱外存。在平均讀寫速度上,有 暫存器 快取 記憶體 外存 在單位容量 上,有 外存 記憶體 快取 暫存器 cpu處理器只能直...
《記憶體管理》 記憶體
1.c c 記憶體分布 我們先來看下面的一段 和相關問題 int globalvar 1 static int staticglobalvar 1 void test char char2 abcd char pchar3 abcd int ptr1 int malloc sizeof int 4 ...