1

我正在使用 ARC,我在我的界面中声明我的 ivar

id itemDelegate; 然后我声明属性:

@property (nonatomic, weak) id<myAppDelegate> Delegate;

在我的实现文件中,我简单地将其合成为:

@synthesize Delegate;

但是,我收到错误:

“_weak 属性 'itemDelegate' 的现有 ivar 'ItemDelegate' 必须是 _weak”。

任何人都可以提出解决方案吗?提前致谢。

4

1 回答 1

2

您可以删除 iVar 声明,因为它会自动创建。

问题是 iVars 的默认所有权限定符是__strong. 因此,id itemDelegate与 相同__strong id itemDelegate。如果您将该属性声明为弱,那么您就会遇到问题。你需要使用__weak. (或者__unsafe_unretained如果您需要向后兼容 iOS 4。)

于 2012-09-03T11:58:34.090 回答