【IOS】ARC体验感受记录

本文固定链接:http://www.verydemo.com/demo_c134_i43204.html

1、不需要写retainreleaseautorelease

2、某对象只要被strong指针指向则不会被销毁,直到所有指向它的strong指针都指向别的地方;

3、默认情况下,所有实例变量和局部变量都是strong类型的;

4、weak类型的指针不持有对象,当所指对象失去所有指向它的strong指针时,该对象被销毁,同时该weak指针自动指向nil;

6、记住:

    OSStatus status = SecItemCopyMatching((CFDictionaryRef) attributeQuery, (CFTypeRef *) &attributeResult); 

变更如下:

    CFTypeRef attri = (__bridge CFTypeRef)attributeResult;
    OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)attributeQuery, &attri);
10、dealloc只是处理一些必要处理的事情,如中止一个还没有完成的网络请求、删除注册的代理或通知.不需要release和[super dealloc];

11、使用@autoreleasepool{}块代替NSAutoreleasePool;

12、属性命名不以new开发;

13、不使用NSAllocateObject和NSDeallocateObject

14、

__bridge

简单赋值,不会影响两边对象的retain count.

__bridge_transfer

赋值后释放右边的对象

__bridge_retained

赋值后也保留不释放右边的对象

15、IBOutlet最好都是weak型;

16、只要调用命名为Create, Copy, Retain的Core Foundation函数,你都需要使用 CFBridgingRelease() 安全地将值传递给ARC;

17、ARC Block, 避免捕获self,推荐采用如下代码模式: 

__weak id weakSelf = self; 
block = ^() 
{ 
id strongSelf = weakSelf; 
if (strongSelf != nil) 
{ 
// do stuff with strongSelf 
} 
}

18、ARC单例

<pre …………………………………………………………………………
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章