我正在使用ARC,并在与的接口中声明我的ivar
id itemDelegate;然后我申报财产:
@property (nonatomic, weak) id<myAppDelegate> Delegate
;
在我的实现文件中,我简单地将其合成为:
@synthesize Delegate
;
然而,我得到了错误:
"_weak属性ItemDelegate的现有ivar ItemDelegate必须是_weak"。
有人能提出解决方案吗?提前谢谢。
您可以删除iVar声明,因为它将自动创建。
问题是iVars的默认所有权限定符是__strong
。因此,id itemDelegate
与__strong id itemDelegate
是相同的。如果您声明该属性为弱属性,则说明存在问题。您需要使用__weak
。(或者__unsafe_unretained
,如果您需要iOS 4的向后兼容性。)