xcode的ARC模式

早期版本的xcode,没有加入LLVM的编译器时,我们需要手动管理内存,经常写release、retain、autorelease的方法,管理程序的内存相对比较麻烦。从xcode4.2开始,有一个选项,可以让我们不写release,也就是说,编译器自动帮你管理好了内存。这样,开发的难度小了不少。
 
      苹果开发小记(二):xcode <wbr>基于iOS5 <wbr>SDK的开发心得
【图】xcode项目设置->编译设置
 
当 Objective-C Automatic Reference Counting = YES 时,我们写了release、retain、autorelease会出现编译失败【下图】。
苹果开发小记(二):xcode <wbr>基于iOS5 <wbr>SDK的开发心得
【图】早期xcode开发的代码,加入ARC后直接编译,遇到很多错误。
 
这个时候,我们就得把release去掉,换成@autoreleasepool{}即可解决。代码如下:
苹果开发小记(二):xcode <wbr>基于iOS5 <wbr>SDK的开发心得
【图】main.m
 
注意:ARC模式的开发,需要注意的一点,NSObject类型与int等非object类的类型是不可以随意转换的。
不要认为CXXXXX的函数就不要释放了,仍然需要CXXXRelease()释放
应尽量避免使用weak,为了保证兼容性,iOS5.0以下不支持此类型。
 
当然,大家都会问到,你用了那么新的SDK,你怎么保证你用的方法是可以向下兼容的呢?
解决方法很简单:
苹果开发小记(二):xcode <wbr>基于iOS5 <wbr>SDK的开发心得
【图】UIScrollView.h
使用方法的时候去找头文件,看到有“__OSX_AVAILABLE_STARTING()”就可以知道,上图的方法,MAC不知道什么时候就有了,iPhone/iPad要在iOS3.0以上可以支持。
posted @ 2013-01-09 17:03  六界剑仙  阅读(231)  评论(0)    收藏  举报