ARC(Automatic Reference Counting),是iOS 5推出的新功能。为了解决MRC管理下的内存泄漏,野指针等问题。
ARC虽然不需要手动去调用retain和release消息,编译器会自动在合适的位置为我们添加这些代码,但是ARC还是存在内存泄露的。
比如
.循环参照
A有个属性参照B,B有个属性参照A,如果都是strong参照的话,两个对象都无法释放,常见于deleage声明为strong,实际应该用assign。还有就是block中使用了当前对象,实际应该把当前对象复制给一个局部变量然后用__block修饰。
.死循环问题
比如如果某个ViewController中有无限循环,也会导致即使ViewController对应的view关掉了,ViewController也不能被释放,这种问题常发生于animation处理。
网友评论