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我这里也提供几个很好的网站链接