Сбой в MQTTSessionStream в currentRunLoop.run () - SwiftMQTT - PullRequest
0 голосов
/ 23 октября 2018

Я работаю над приложением, использующим библиотеку SwiftMQTT.У меня сбой после короткого периода между созданием и удалением MQTTSessionStream - проблема в том, что [слабое Я] было выпущено до выполнения асинхронного блока в sessionQueue.Это не происходит сразу, но это происходит после нескольких попыток.

sessionQueue.async { [weak self] in
        let currentRunLoop = RunLoop.current
        inputStream?.schedule(in: currentRunLoop, forMode: RunLoop.Mode.default)
        outputStream?.schedule(in: currentRunLoop, forMode: RunLoop.Mode.default)
        inputStream?.open()
        outputStream?.open()
        if ssl {
            let securityLevel = StreamSocketSecurityLevel.negotiatedSSL.rawValue
            inputStream?.setProperty(securityLevel, forKey: .socketSecurityLevelKey)
            outputStream?.setProperty(securityLevel, forKey: .socketSecurityLevelKey)
        }
        if timeout > 0 {
            DispatchQueue.global().asyncAfter(deadline: .now() +  timeout) {
                self?.connectTimeout()
            }
        }
        currentRunLoop.run()
    }

Сбой происходит в строке, содержащей "currentRunLoop.run ()".У кого-нибудь есть решение для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...