установить делегат для себя, но результат равен нулю - PullRequest
0 голосов
/ 21 октября 2018

Я установил 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

пс1.Я знаю, что могу использовать сильные, но тогда будет высокий риск сбоя.

ps2.Странно то, что когда я устанавливаю разрыв прямо на строке, где устанавливается делегат, проблем нет;но, если я позволю процессу программирования работать нормально, делегат будет равен нулю.

Редактировать Инициализация func из ChatViewController

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