本文固定链接: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 …………………………………………………………………………