gpt4 book ai didi

ios - 使用 ARC 释放 NSObject

转载 作者:行者123 更新时间:2023-12-01 17:42:11 25 4
gpt4 key购买 nike

我有多个 View Controller ,它们强烈引用 NSObject 的子类。每个 View Controller 都允许用户以某种方式改变这个对象,然后将该对象传递给下一个 View Controller 。完成后,用户可以提交这些更改并使用 NSObject 子类的新实例重新开始该过程。我遇到的问题是堆栈上的一些 View Controller 保留了对提交实例的引用。

我尝试过使用弱和 unsafe_unretained ,但这使得在 View Controller 之间传递对象变得困难。

一旦提交,我基本上需要释放对象的一个​​实例,这样任何 View Controller 对它的引用都将为零。但是,ARC 不允许显式调用 dealloc。

我可以使用 NSNotificationCenter 或使用委托(delegate)来解决这个问题,但是有没有更清洁的方法呢?

任何见解将不胜感激。谢谢!

最佳答案

有每个 View Controller 是合理的 retain他们正在处理的对象。

当 View Controller A 处理对象时,它会保留它。当它完成并将其传递给 B 时,B 保留它,然后 A 将自己对它的引用设置为 nil 以放弃对它的所有权。这个过程一直持续到最终的 View Controller 提交对象,然后将它自己的引用设置为 nil,这应该会导致对象被释放。

关于ios - 使用 ARC 释放 NSObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15534708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com