您好,登錄后才能下訂單哦!
內存管理機制
引用計數:因為OC中不存在垃圾回收機制,所以才根據引用計數回收機制。當引用計數為0時,銷毀空間。也就是說,根據引用計數來確定一個對象是否釋放。
可以改變引用計數的操作:allco retain release copy dealloc
便利構造器
自動釋放池:
每次對象調用autorelease 方法時(obj-c中的正式說法應該是:給對象發送autorelease消息),對象的引用計數并不是真正變化,而是向pool中添加一條記錄,記下對象的這種要求。最后當pool發送drain 或者 release 消息時,池中的所有對象的這種要求一一被執行(即:pool被銷毀前,會通知池中的所有對象,全部發送release 消息真正將引用計數減少,如果對象之前沒有發送過autorelease 消息)
retain:引用計數+1 操作,獲取對象的所有權,與release 對應。
線程:注意當視圖退出時,需要關閉自己所開線程
alloc : 開辟空間,引用計數有0變為1,dealloc :銷毀空間 手動調用dealloc 時候會強制將引用計數置為0;
copy:將源數據重新復制一份,原數據引用計數不變,拷貝的一份引用計數+1;復制一個對象,并且存儲在不同的內存區,原對象的引用計數不變。遵循NSCoping 協議的可以深拷貝。
assign :×××或者其他常量的引用計數。不發生改變
在ARC模式下,strong 與retain相似,strong,用于ARC模式下,表明對象屬于強引用,類似retain ,但是比retain更加安全,只要對象存在擁有者,就可以引用,不會被釋放,只要對象失去擁有者,立即被拋棄,不必再將已經指向已經釋放的對象的指針指向空。避免了野指針。
weak 類似assign ,弱引用,引用計數不會增加。釋放指針自動置為nil
在ARC模式下,weak 與 assign 相似,
readwrite:讀寫,既有setter 和 getter
readonly:只有讀操作,即只有getter
nonatomic :非原子特性,不保證多線程下保護安全
atomic:原子特性,保證多線程下安全,有一個屬性需要對個線程同時訪問一個變量,使用atomic 能夠自動枷鎖解鎖。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。