我正在使用 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 的向后兼容性。)
关于ios - ARC - 如何管理那些需要 __unsafe_unretained 的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12247145/