gpt4 book ai didi

ios - 当 View Controller 被取消初始化时进行网络调用是否安全?

转载 作者:行者123 更新时间:2023-11-28 06:34:29 25 4
gpt4 key购买 nike

基本上,我有一个控制聊天室的 UIViewController。当 UIViewController 以任何方式取消初始化时,当前用户需要离开 channel 。

目前,我的代码是:

class ChatViewController: SLKTextViewController {

var channel: TWMChannel? = nil

// A ton of other code...

deinit {
channel!.leaveWithCompletion({
_ in
})
}

我只在 deinit 中看到过像 NSNotificationCenter.defaultCenter().removeObserver(self) 这样的代码,我还没有在网上找到任何关于这样做是否安全的信息。

本质上,这个 View Controller 是 UINavigationController 堆栈的一部分,每当弹出 View Controller (我想 deinit 总是会在此期间被调用)时,我希望用户离开 channel 。如果有一种首选方法可以处理导航栏上左上角的后退按钮和平移手势,那么我很乐意看到实现。

最佳答案

不要在 deinit 中执行此操作,在 viewWillDisappear 中执行此操作。这就是您所说的意思(当用户离开该屏幕时离开),这种方法或多或少听起来不错。但是,channel!. 这里是不正确的。您肯定是指 channel?。 这样如果未设置 channel 它什么都不做,而不是在未设置 channel 时崩溃。

deinit 不 promise 在一般情况下被调用,并且在任何情况下仅在 View Controller 实际销毁时调用,这可能比您预期的要晚得多(特别是如果它是一部分一堆)。

关于ios - 当 View Controller 被取消初始化时进行网络调用是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39433417/

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