iphone - 带有 ARC 的 Objective-C 委托(delegate)

标签 iphone objective-c ios ipad automatic-ref-counting

我正在编写一个具有委托(delegate)对象回调的类,但在使用 ARC 时遇到问题。

例如我有符合 ProtocolA 的 ObjectA(委托(delegate))和 ObjectB,它是回调委托(delegate)的对象。我将 ObjectA 作为 @property 存储在 ObjectB 中。

在这种情况下,哪些变量应该是强引用,哪些应该是弱引用?我需要避免将“self”从 ObjectA 传递到 ObjectB 以设置委托(delegate)导致从强指针转换为弱指针的情况。

最佳答案

为避免循环引用,请将 ObjectB 的委托(delegate)保存为弱引用。因为 ObjectA“拥有”ObjectB,所以不应释放 ObjectA,而 ObjectB 有对它的引用。所以写:

    @property (weak, nonatomic) id <ObjectBDelegate> delegate;

关于iphone - 带有 ARC 的 Objective-C 委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8041906/

相关文章:

iPhone 'Event Kit' - 如何为提取指定额外的搜索过滤器(超出开始/结束日期)?

iphone - UIImageView 动画在第一次运行时滞后

iphone - UITableView 不显示解析的数据

ios - 如何从 Vuforia 获取相机亮度?

javascript - 在 swift 中捕获事件 javascript

ios - 具有单击和长按事件的 UIButton swift

ios - 在 didReceiveLocalNotification 中以编程方式关闭 UIAlertview

ios - 一个文件中的多个类

objective-c - 如何从一个 sip 帐户向多个 sip 帐户调用多个电话?

ios - 我以为我想要一个无限循环。我想要什么样的循环?