// ARC 无效 @property (nonatomic, retain) NSString *string;
// --->
// ARC 有效 @property (nonatomic, strong) NSString *string;
而在 Xcode 4.3 中,我们可以这么做,
// ARC 无效 @property (nonatomic, retain) NSString *string;
// --->
// ARC 有效 @property (nonatomic) NSString *string;
ARC 代码自动变换
另外,Xcode 4.2开始,增加了旧代码向 ARC 代码自动转换的功能。有兴趣的朋友可以试试。位置是:
Edit->Refactor->Convert to Objective-C ARC…
为什么iOS中没有GC
我们已经知道ARC并不是GC(垃圾回收)了,那么,为什么iOS中不支持该机能呢?还特意搞出个ARC来。以下是我的分析:
消耗CPU时间的处理尽量避免,以节约电池电量 GC执行的后,会停掉运行时库;这是最大的心结 嵌入式设备本身内存就不是很大,如果GC不停的在后台运行,执行的频率会很高,严重影响性能 UI动画处理是iOS的一大卖点,而有了GC后可能会引起不必要的性能损失
1. 关于Objective-C对象的解释,可以参考iPhone开发入门(7)— 从C/C++语言到Objective-C语言。
2. 当然,如果你不写,编译器会用缺省的值代替。具体见iPhone开发之深入浅出 (3) — ARC之前世今生中的描述。
3. 关于这一点,可以参考iPhone开发之深入浅出 (1) — ARC是什么 一文,明白为什么 __unsafe_unretained 是危险的。 上一页 [1] [2]
|