iOS arc原理和使用注意点

本文主要将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];

你可能感兴趣的:(iOS arc原理和使用注意点)