1. 手動管理。下面這篇博文絕對能讓你清晰不少。http://www.cocoachina.com/bbs/read.php?tid=15963 php
不過這裏須要指出兩點: html
1.1 文中說你autorelease的對象會被放到一個nsmutablearray中,這個未必,總之,知道是放在了某個容器中就ok了,不必較真 程序員
1.2 文中說到的一些在viewDidUnload中的操做,如今應該移植到didReceiveMemoryWarning中,字iOS6之後就沒有viewDidUnload操做了,該釋放的對象不能忽視。 iphone
1.3 autorelease能少用,儘可能少用。 網站
2. ARC (固然我是比較推薦使用arc的,尤爲是對內存的管理沒有太多自信的時候)畢竟它能夠節約開發時間,讓程序員們吧主要經歷放在開發主要代碼上。 spa
arc使用的一些規則: .net
2.1 不能直接調用dealloc方法,不能重載或直接調用retain, release, retainCount, 或 autorelease等方法 指針
2.2 在c語言的結構體中,不能再使用對象指針。應放棄c結構體,而使用oc對象。 htm
2.3 不能使用NSZone 對象
2.4 不能使用NSAutoreleasePool,ARC提供了@autoreleasepool語句塊
2.5 方法和變量的命名不能以「new」開頭
關於對象的生命週期:
weak引用:設置成weak的屬性,不會影響對象的生命週期,若是引用的對象已經被釋放,引用會指向nil。
strong引用:設置成strong的屬性,會影響對象的生命週期。
關於arc我這裏也提供幾個很好的網站鏈接