iOS開發之關於NSZone

2021-07-06 08:47:49 字數 562 閱讀 4312

看了幾天關於nszone的文章,自己總結了下 nszone。

廢話不多說。

在網上看到這麼一句話:nszone可以想象成乙個記憶體池,alloc或dealloc都是在記憶體池進行的。

cocoa會系統預設的nszone來對物件進行管理,然而大量物件的釋放可能導致記憶體嚴重碎片化,cocoa本身有過優化,每次alloc的時候會試圖去填滿記憶體空隙,但是時間開銷會很大,這時候我們可以建立乙個自己的nszone,將alloc和cope全部指定到自定義的nszone中,可以減少時間開銷。自定義的nszone可以一次性釋放掉zone裡你建立的全部東西,節省了大量的dealloc時間。

平時我們初始化物件的時候比如[[class alloc]init],有兩個方法alloc和init ,alloc 方法是給物件分配記憶體空間,init則是初始化。而allocwithzone也是給物件初始化的方法,一般用法是[[class allocwithzone:null]init]。在蘋果的官方文件中寫過allocwithzone方法是歷史遺留問題,現在也不使用了,現在當我們alloc的時候會覆蓋掉allocwithzone。

copewithzone同理。

IOS學習筆記之NSZone

在碰到allocwithzone,copywithzone總會有個疑問,這個nszone到底是個什麼東西?簡單來說,可以想象成乙個記憶體池,alloc或是dealloc這些操作,都是在這個記憶體池中操作的。cocoa總是會配置乙個預設的nszone,任何預設的記憶體操作都是在這個 zone 上操作的...

ios開發開發之 關於時間戳轉化成時間

最近開發專案中遇到時間轉的問題,當從服務端傳回時間到客戶端,而這個時間確是時間戳,並且是13位,如果是普通的字串比如 2015 09 24 19 00 000 這樣轉化是比較簡單,但是時間戳不是這樣的,ios生成的時間戳是10位,所以說需要進行轉換。下面就直接上 了,看的看得清晰 伺服器傳過來的時間...

iOS開發之歸檔

歸檔是一種物件都可以實現的更加常規的序列化方式。適用對模型物件進行歸檔的技術可以輕鬆將複雜物件寫入檔案和從檔案中進行讀取。大多數支援儲存資料的foundation和cocos touch類都遵循nscoding協議 不過有些例外,例如uiiamge 因此對於大多數系統提供的類而言,歸檔比較輕鬆。如果...