我正在使用ARC,我在
界面中声明了我的ivarid itemDelegate; 然后我宣布财产:
@property (nonatomic, weak) id<myAppDelegate> Delegate
;
在我的实现文件中,我只是将其合成为:
@synthesize Delegate
;
但是,我收到错误:
“_weak属性'itemDelegate'的现有ivar'SetDelegate'必须是_weak”。
有人可以提出解决方案吗?提前谢谢。
答案 0 :(得分:2)
您可以删除iVar声明,因为它将自动创建。
问题是iVars的默认所有权限定符为__strong
。因此,id itemDelegate
与__strong id itemDelegate
相同。如果您将该属性声明为弱,那么您就会遇到问题。您需要使用__weak
。 (或__unsafe_unretained
如果您需要iOS 4的向后兼容性。)