经过了一年的iOS开发,iOS平台使用的xcode环境从之前的3.2.5慢慢的,到了4.0,4.2,以及现在的4.3.3(iOS 5.1.1 SDK),开发的模式也发生了很大的变化。
早期版本的xcode,没有加入LLVM的编译器时,我们需要手动管理内存,经常写release、retain、autorelease的方法,管理程序的内存相对比较麻烦。从xcode4.2开始,有一个选项,可以让我们不写release,也就是说,编译器自动帮你管理好了内存。这样,开发的难度小了不少。
【图】
xcode项目设置->编译设置
【图】
早期xcode开发的代码,加入ARC后直接编译,遇到很多错误。
这个时候,我们就得把release去掉,换成@autoreleasepool{}即可解决。代码如下:
【图】main.m
注意:ARC模式的开发,需要注意的一点,NSObject类型与int等非object类的类型是不可以随意转换的。
不要认为CXXXXX的函数就不要释放了,仍然需要CXXXRelease()释放
应尽量避免使用weak,为了保证兼容性,iOS5.0以下不支持此类型。
当然,大家都会问到,你用了那么新的SDK,你怎么保证你用的方法是可以向下兼容的呢?
解决方法很简单:
【图】UIScrollView.h
使用方法的时候去找头文件,看到有“__OSX_AVAILABLE_STARTING()”就可以知道,上图的方法,MAC不知道什么时候就有了,iPhone/iPad要在iOS3.0以上可以支持。