我已经加入了 ARC 的潮流。在过去,我会像这样声明我的委托属性:
@property(assign) id<MyProtocol> delegate;
所以我想我会在 ARC 下这样做:
@property(weak) id<MyProtocol> delegate;
不是这样。在 .m 中的 @synthesize 语句中出现编译错误:
*语义问题:__weak 属性 'delegate' 的现有 ivar 'delegate' 必须是 __weak*
我已经宣布它很弱!另外,我如何将实现协议的类传递给弱引用的属性。我是否必须将其包装在那些奇怪的 obj_unretained 调用之一中?
对此的任何帮助将不胜感激。