如何使用自动引用计数的代表

我已经跳上了ARC的潮stream。 在过去,我将我的委托属性声明如下:

@property(assign) id<MyProtocol> delegate; 

所以我想我会在ARC下做这个:

 @property(weak) id<MyProtocol> delegate; 

不是这样。 在.m中的@synthesize语句中,我有一个编译错误

*语义问题:__weak property'delegate'的现有ivar'委托'必须是__weak *

我已经宣布它虽然弱! 另外我如何将实现协议的类传递给弱引用的属性。 我必须把它包装在那些奇怪的obj_unretained调用之一吗?

任何帮助,将非常感激。

“伊娃”意思是“实例variables”,你没有显示。 我打赌它看起来像这样:

 @interface Foo : NSObject { id delegate; } @property (weak) id delegate; 

错误在说的是它看起来像这样:

 @interface Foo : NSObject { __weak id delegate; } @property (weak) id delegate; 

如果财产声称是虚弱的,那么价值最终储存的伊娃也必须薄弱。