将委托设置为self,但结果为nil

时间:2018-10-21 12:23:12

标签: ios swift delegates protocols

我有时将delegate设置为self,但有时,代理人将不会设置。是零。似乎有些内存管理问题。我想知道有什么解决方案可以解决此问题而不会导致任何内存泄漏吗?我将在此处复制代码和调试步骤。

func openConversationForPost(_ post: PostViewStructure, viewController: UIViewController) {
    let dest = ChatViewController(service: service, conversationID: post.token!)
    dest.delegate = self
    viewController.navigationController?.pushViewController(dest, animated: true)
}

Debug Console

ps1。我知道我可以使用强大的功能,但是崩溃的风险很高。

ps2。奇怪的是,当我在设置委托的那一行上设置断点时没有问题;但是,如果我让程序正常运行,则委托为nil。

修改 func

的初始化ChatViewController
init(service: ServicesProtocol, conversationID: String) {
    self.conversationID = conversationID
    super.init(service: service)
    defer { conversation = DataProvider().object(ChatConversation.self, key: conversationID) }
}

0 个答案:

没有答案