-
1.Objective-C如何對(duì)內(nèi)存管理
(1)每個(gè)對(duì)象都有一個(gè)引用計(jì)數(shù)器不跟,retainCount,當(dāng)對(duì)象的retainCount = 0時(shí)米碰,就會(huì)被銷毀
(2)retain操作讓對(duì)象的retainCount + 1窝革、release操作讓對(duì)象的retainCount - 1
(3)還可以通過(guò)autorelease pool管理內(nèi)存
(4)如果用ARC,編譯器會(huì)自動(dòng)生成管理內(nèi)存的代碼
-
2.內(nèi)存管理的原則
(1)只要調(diào)用了alloc吕座、copy虐译、new方法生成一個(gè)新對(duì)象,都必須在最后調(diào)用一次release或者autorelease
(2)只要調(diào)用了retain米诉,都必須在最后調(diào)用一次release或者autorelease
(3)@property如果用了copy或者retain菱蔬,就需要對(duì)不再使用的屬性做一次release操作
(4)如果用了ARC,一般不需要手寫release代碼
-
3.檢查項(xiàng)目中內(nèi)存管理問(wèn)題的方式
- (1)點(diǎn)擊Xcode頂部菜單中的Product Analyze史侣。這種方法主要可以查看內(nèi)存泄露,變量未初始化魏身,變量定義后沒(méi)有被使用到
- (2)使用Instrument工具檢查惊橱。點(diǎn)擊Xcode頂部菜單中的Product Profile,彈出一個(gè)界面箭昵,選擇左側(cè)的Memory后税朴,再選右側(cè)的Leaks。
如有不當(dāng)、錯(cuò)誤之處正林,歡迎指正泡一!