手动和自动引用计数小结
自动引用计数:(arc)自动去释放掉你声明的,但是你用完了的对象内存。
手动引用计数:(mrc)需要手动去释放掉,你自己声明的对象。
现在的xcode是自动引用计数,但是你可以调用配件,将你的整个工程,或其中的某个.m变成手动引用计数。
将整个工程变成手动引用计数的步骤为:
1
2
3
4
将某个.m文件变成手动引用计数的步骤为:
在你所需要把自动引用计数变为手动引用计数的.m文件后面的 compiler flags中 写入-fno-objc-arc就可以了,写入-fobjc-arc则是自动引用计数。
[ 对象名 retain] 引用计数加 1
[[对象名 alloc] init] 创建并初始化,引用计数加1
[对象名 release] 引用计数减1
[对象名 autorelease] 对象会延迟一会,再将对象引用计数减1.可多次调用,延迟时间会坚持一个事件循环。
在哪一个方法或类中,创建对象,或者retain了,那就最好在这个方法中进行释放。
—(void)dealloc(){ }
这个函数会在对象的内存空间销毁前自动调用,即销毁前要做的事。不能手动调用这个函数。
如果一个类使用手动引用计数,并实现了dealloc方法,就必须在dealloc中调用父类的dealloc方法。即[super dealloc]