pointer2011 发表于 2012-12-19 22:18:52

iOS应用开发之ARC?

<div id="cnblogs_post_body">ARC是什么
ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。
该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过指定的语法,让编译器(LLVM 3.0)在编译代码时,自动生成实例的引用计数管理部分代码。有一点,ARC并不是GC,它只是一种代码静态分析(Static Analyzer)工具。
变化点
通过一小段代码,我们看看使用ARC前后的变化点。

[*]@interface NonARCObject : NSObject {
[*]    NSString *name;
[*]}
[*]-(id)initWithName:(NSString *)name;
[*]@end
[*]
[*]@implementation NonARCObject
[*]-(id)initWithName:(NSString *)newName {
[*]    self = ;
[*]    if (self) {
[*]      name = ;
[*]    }
[*]    return self;
[*]}
[*]
[*]-(void)dealloc {
[*]    ;
[*]    ;
[*]}
[*]@end

[*]@interface ARCObject : NSObject {
[*]    NSString *name;
[*]}
[*]-(id)initWithName:(NSString *)name;
[*]@end
[*]
[*]@implementation ARCObject
[*]-(id)initWithName:(NSString *)newName {
[*]    self = ;
[*]    if (self) {
[*]      name = newName;
[*]    }
[*]    return self;
[*]}
[*]@end
我们之前使用Objective-C中内存管理规则时,往往采用下面的准则
页: [1]
查看完整版本: iOS应用开发之ARC?