1.上篇咱们讲了OC中的内存管理基础,咱们再总结一下什么时候该用内存管理。
1)当用new、alloc、copy建立对象时,必需要释放对象。html
2)当拥有对象时,若是是临时对象,不须要释放;当须要长时间保留对象时,必须保留对象而且在dealloc方法中释放对象。ios
2.OC中的垃圾回收机制app
OC2.0引入了垃圾回收机制,也就是启用了垃圾回收机制以后,咱们忘记了释放对象,OC会帮咱们释放对象,这点可看出OC比C++的强大之处了。spa
垃圾回收机制主要原理是在运行中定时动态跟踪对象,检查对象的引用技术而且进行清理,垃圾回收只支持mac,ios不支持,缘由是在运行过程当中动态释放,对于手机app不适用,因此apple引入ARC来解决问题。须要注意的是:我如今用的XCode6设置里面已经没有垃圾回收机制设置了。htm
3.IOS中ARC机制对象
ARC(automatic reference counting)机制跟垃圾回收机制差很少,都会帮助你管理对象的生命周期。不一样的是垃圾回收机制是在运行时决定释放对象的,ARC是在编译的时候编译器给咱们的代码偷偷地加上retain、release方法。咱们能够选中工程,经过菜单Edit->Refactor->Convert to Objective-C ARC来对工程进行ARC转换。ARC只对ROP对象起做用。具体讲解能够参考OC基础教程活着apple官网文档https://developer.apple.com/library/mac/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html。教程