ios arc原理和使用注意点
2018-03-30 本文已影响18人
寻找最亮的光
一直没有写日记的习惯,之前也没看多少文章,最近看了很多,觉得写的不错,也学到了很多东西,所以想花点时间来整理oc中的一些重要的知识点。由于之前发现简书每天只能发两篇文章,所以先简单记录一下其他文章中看到的知识点,等之后再来仔细整理。因为自己没有具体实践过,所以文章中可能有错误,发现了之后请指出来,十分感谢!
本文主要将ARC原理和使用注意点,所以其他文章中的内容可能有删减,我只放我觉得应该放入的内容,其他内容请看原文。
首先将引用文章的地址贴出来:彻底理解内存管理(MRC、ARC)
ARC的判断原则
ARC判断一个对象是否需要释放不是通过引用计数来进行判断的,而是通过强指针来进行判断的。那么什么是强指针?
强指针
默认所有对象的指针变量都是强指针
被__strong修饰的指针
Person *p1 = [[Person alloc] init];
__strongPerson *p2 = [[Person alloc] init];
弱指针
被__weak修饰的指针
__weakPerson *p = [[Person alloc] init];
ARC如何通过强指针来判断?
只要还有一个强指针变量指向对象,对象就会保持在内存中
ARC的注意点
不允许调用对象的 release方法
不允许调用 autorelease方法
重写父类的dealloc方法时,不能再调用 [super dealloc];