ios - ARC - 如何管理那些需要 __unsafe_unretained 的属性?

标签 ios delegates automatic-ref-counting

我正在使用 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/

相关文章:

iphone - Facebook 提及标签不起作用

jquery - .delegate 相当于 jQuery 1.4.2 中现有的 .hover 方法

ios - 委托(delegate)未收到数据

ios - Objective-c 属性未在 ARC 下发布

ios - 从 iOS 6 开始, objective-c 选择器 dealloc 和 release 是否仍在使用?

ios - React Native XCode Project Product Archive 因架构 arm64 的重复符号而失败

iOS segue 两次屏幕

ios - 事件 View 指示器在 LaunchScreen.storyboard 上没有动画

objective-c - Swift 相当于 id<MyProtocol>?

objective-c - 关于iOS5 SDK中自动引用计数的一些问题