gpt4 book ai didi

ios - ARC 的 viewController 中的变量

转载 作者:行者123 更新时间:2023-11-30 12:10:35 27 4
gpt4 key购买 nike

我的应用程序是在 UINavigationViewController 上构建的,当我的应用程序要在当前 UIViewController 之上连接到其他 UIViewController 时。 prepare(for:sender) 方法将在跳转到下一个 UIViewController 之前被调用。

我想知道何时实现覆盖 prepare(for:sender),例如:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toNextVC", let vc = segue.destination as? NextViewController {
vc.session = self.session // session is class.
}
}

所以,在NextViewController中,如果session是类的变量,因此,如果我需要为session标记unowned NextViewController 中?

as nextViewController 可能会被删除并返回到以前的 View Controller 。

最佳答案

NextViewController 可以拥有 session 变量(从而增加其 ARC)。当您弹出 Controller (从它返回)时,它将被释放,并且它对 session 的引用将被自动删除,从而减少其 ARC back。

如果 session 变量将获取对 NextViewController 的引用,从而创建保留周期,则可能会出现潜在问题。然后,NextViewController 将不会被释放(因为它的 ARC > 0),并且这将阻止减少 session 的 ARC。您必须使用 unownedweak 来打破这样的循环。

关于ios - ARC 的 viewController 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46115682/

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