|  
 
 
// 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]  
 |