首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有调用的快速deinit方法

没有调用的快速deinit方法
EN

Stack Overflow用户
提问于 2019-05-09 07:00:25
回答 1查看 2.6K关注 0票数 2

UIViewController中,deinit方法没有在ios中调用

我尝试了下面的代码,以便在popToViewcontroller deinit方法不调用导航之后导航到下一个deinit

代码语言:javascript
复制
 let data = isSearchEnabled ? repository.filteredList[index] : repository.list[index]
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    (appDelegate.window?.rootViewController as! UITabBarController).tabBar.isHidden = true
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let viewController = storyboard.instantiateViewController(withIdentifier: "AuctionDetailsViewController") as! AuctionDetailsViewController
    viewController.auction = data.getAuctionData()
    viewController.parentVC = self
    parentNavigationController?.pushViewController(viewController, animated: true)

PushView:

代码语言:javascript
复制
deinit {
    print("AuctionDetailsViewController deallocated...")
}

上面的deinit方法应该调用popToViewcontroller

EN

回答 1

Stack Overflow用户

发布于 2019-05-09 07:24:05

您需要了解使用ARC完成的内存管理( iOS )。你可以读到这个这里

不调用Deinit(),如果查看器.

保存对象(保留周期)的强引用 您需要检查和删除对对象的不必要的强引用,以避免零售周期,有通知观察者。 您需要取消注册一个观察者,因为通知中心保留了观察者,直到您注销它。委托的使用(保持它的强引用) 如果视图控制器正在确认委托应该标记为weak的协议。

上面提到的是阻止视图控制器去分配的一些要点,并且从来没有调用deinit。也许还有其他的原因也是如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56053838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档