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];

上一篇下一篇

猜你喜欢

热点阅读