0

我有一個類:ObjC自動引用計數(ARC):弱分配vs unsafe_unretained代表?

@interface MyClass : NSObject 
@property (weak) id delegate; 
@end 

和實現:

@implementation MyClass 
@synthesize delegate; 
@end 

當我重構了ARC的代碼,它告訴我,「弱」財產在合成只允許在ARC/GC模式。但是從我所知道的情況來看,委託在ARC中可能是'弱'的,而且,如果我將其更改爲分配,那麼它將轉換爲unsafe_unretained。

我的問題是,這是否意味着在轉換(到ARC)之前的代碼不應該使用任何ARC?

謝謝!

回答

0

這聽起來像你可能會中定位iOS 4.x的

4.x中加入ARC,但不是全部弧的iOS5 +了。 iOS 4.x arc不支持「弱」關鍵字,只有unsafe_unretained。如果你想使用weak而不是unsafe_retained,你將不得不放棄iOS 4的支持。

「weak」和「unsafe_unretained」之間的區別在於weak會在釋放時將其自身設置爲nil,其中unsafe_unretained將指向壞(釋放)的內存。

相關問題