IOS开发复习笔记(3)-ARC_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > IOS开发复习笔记(3)-ARC

IOS开发复习笔记(3)-ARC

 2014/7/24 11:26:24  KeithMorning  程序员俱乐部  我要评论(0)
  • 摘要:1.ARC当你自己调用了release或retain语句的时候,ARC有效时编译文件会遇到错误,你可以通过-fno-objc-arc和-fobjc-arc两个编译器标志在混搭中支持ARC和非ARC的代码如下面编译支持ARC,而文件代码不支持ARC#if!__has_feature(objc_arc)//thiscodedonotsupporttoARC-(void)release{//releaseyourvar}#endif在ARC工程中集成非ARC的第三方代码
  • 标签:笔记 复习 iOS 开发

1.ARC

当你自己调用了release或retain语句的时候,ARC有效时编译文件会遇到错误,你可以通过-fno-objc-arc和-fobjc-arc两个编译器标志在混搭中支持ARC和非ARC的代码

如下面编译支持ARC,而文件代码不支持ARC

# if !__has_feature(objc_arc)
//this code do not support to ARC
-(void) release{
//release your var
}
#endif

在ARC工程中集成非ARC的第三方代码:当使用没有通过ARC编译的第三方框架时,编译库里面的文件需要使用-fno-objc-arc编译开关。Edit->Refactor->convert to Object-c ARC

在非ARC工程中集成ARC代码时:不会遇到编译错误,但可能会面临内存泄露,为避免此类事情的发生,需要使用-fobjc-arc来标记这些通过ARC编译的第三方代码

2.框架中的ARC

1)归零弱引用

弱一用通过持有指针而不关注引用计数的值来避免循环保留,但是当内存(指针指向内存)被销毁后,弱引用指向将是无效内容。销毁内存后在访问指针会导致应用崩溃,归零引用在销毁内存后将指针归零的方法来解决问题。

2)所有权修饰符

ARC会自动帮我们插入retain和release但是我们需要给它一些提示来销毁已分配内存的准确时机,这些提示就是所有权修饰符

  • __strong
  • __weak
  • __unsafe_unretained
  • __autoreleasing

前三个可用于属性的声明,属性声明不需要双下划线,默认的所有权修饰符是__strong

  1. __strong

因为__strong是默认的,所以使用

@property (nonatomic,strong) NSString *someString;
//等同
@property (nonatomic) NSString *someString;

__strong 等同retain。

上一篇: PHP 高级编程之多线程(四)-多线程与ZeroMQ 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名