ObjC自动引用计数(ARC):弱代表分配vs不安全代表委托代理?

时间:2012-06-28 04:35:16

标签: objective-c automatic-ref-counting weak unsafe-unretained

我有一个班级:

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

和实施:

@implementation MyClass
@synthesize delegate;
@end

当我重构ARC的代码时,它告诉我只能在ARC / GC模式下合成'weak'属性。但据我所知,委托可以在ARC中“弱”,如果我将其更改为assign,那么它将被转换为unsafe_unretained。

我的问题是,是否意味着转换前的代码(到ARC)不应该使用任何ARC?

谢谢!

1 个答案:

答案 0 :(得分:0)

听起来你可能会定位iOS 4.x

4.x添加了ARC,但不是iOS5 +获得的完整ARC。 iOS 4.x arc不支持“weak”关键字,只有unsafe_unretained。如果你想使用weak而不是unsafe_retained,你将不得不放弃iOS 4支持。

“weak”和“unsafe_unretained”之间的区别在于weak会在释放时将自己设置为nil,而unsafe_unretained会指向坏(已释放)的内存。

相关问题