Swift 5.1 NSInternalInconsistencyException错误错误

问题描述 投票:0回答:1

我正在更新旧的媒体播放器项目(Swift 3),并且出现奇怪的错误:

由于未捕获的异常而终止应用程序“ NSInternalInconsistencyException”,原因:“不支持的操作方法签名。必须返回MPRemoteCommandHandlerStatus或使用完成处理程序作为第二个参数。

我在此代码上收到此错误:

UIApplication.shared.beginReceivingRemoteControlEvents()
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.previousTrackCommand.addTarget(self, action: #selector(handlePrevTrack))

@objc func handlePrevTrack(){
        if playListEpisodes.count == 0 {
            return
        }

        let currentEpisodeIndex = playListEpisodes.firstIndex { (ep) -> Bool in
            return self.episode.title == ep.title && self.episode.author == ep.author
        }

        guard let index = currentEpisodeIndex else { return}
        let nextEpisode:Episode

        if index == 0 {
            nextEpisode = playListEpisodes[playListEpisodes.count - 1]
        }else {
            nextEpisode = playListEpisodes[index - 1]
        }

        self.episode = nextEpisode

 }

在Swift 5.1中有什么变化?

ios swift media-player avkit
1个回答
0
投票

根据文档,previousTrackCommand选择器应将MPRemoteCommandEvent作为第一个参数并返回MPRemoteCommandHandlerStatus

func addTarget(handler: (MPRemoteCommandEvent) -> MPRemoteCommandHandlerStatus) -> Any
© www.soinside.com 2019 - 2024. All rights reserved.