Изменение статуса самолета в самолете не наблюдается в классе диспетчера ключей - PullRequest
0 голосов
/ 27 мая 2018

Я настраиваю слушателя на ключ DJIFlightControllerParamIsFlying на моем Mavic Air.Это никогда не вызывается.

let flyingKey = DJIFlightControllerKey (параметр: DJIFlightControllerParamIsFlying)

    DJISDKManager.keyManager()?.startListeningForChanges(on: flyingKey!, withListener: self, andUpdate: { (oldValue: DJIKeyedValue?, newValue: DJIKeyedValue?) in
        Logger.sharedLogger.log(message: "Received flying status change", event: "Notice", fileName: #file,line: #line,funcName: #function)                
    })

Есть ли что-то еще, что мне нужно сделать, чтобы включить это сообщение?

Спасибо,

1 Ответ

0 голосов
/ 30 мая 2018

Вы должны проверить, что keyManager не равен nil:

guard let km = DJISDKManager.keyManager() else {
    // handle error 
    return
}

km.startListeningForChanges(on: flyingKey!, withListener: self, andUpdate: { (oldValue: DJIKeyedValue?, newValue: DJIKeyedValue?) in
    Logger.sharedLogger.log(message: "Received flying status change", event: "Notice", fileName: #file,line: #line,funcName: #function)                
})

KeyManager может вернуть nil, если он был вызван до регистрации.

...