Должен возвращать MPRemoteCommandHandlerStatus или принимать обработчик завершения в качестве второго аргумента. - PullRequest
4 голосов
/ 04 февраля 2020

Это то, что я делаю в своем коде:

commandCenter.pauseCommand.addTarget(self, action: #selector(pause))

@objc private func pause() {
    player?.pause()
    playButton.setImage(UIImage(named: "icon-play")?.alwaysTemplate, for: .normal)
    delegate?.playerViewDidPause()
}

И это ошибка, которую я получаю при запуске приложения:

*** Завершение работы приложения из-за невыполнения исключение 'NSInternalInconsistencyException', причина: 'неподдерживаемая подпись метода действия. Должен возвращать MPRemoteCommandHandlerStatus или принимать обработчик завершения в качестве второго аргумента. '

1 Ответ

3 голосов
/ 04 февраля 2020

Вы должны изменить свой метод следующим образом:

@objc private func pause() -> MPRemoteCommandHandlerStatus {
    player?.pause()
    playButton.setImage(UIImage(named: "icon-play")?.alwaysTemplate, for: .normal)
    delegate?.playerViewDidPause()
    return .success
}

и все будет работать как шарм?

...