ARC-如何管理那些需要保留的属性



我正在使用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的向后兼容性。)

最新更新