“不支持的操作方法签名”。 FolioReader Swift,错误

Posted

技术标签:

【中文标题】“不支持的操作方法签名”。 FolioReader Swift,错误【英文标题】:"Unsupported action method signature". FolioReader Swift , Error 【发布时间】:2021-07-12 05:56:31 【问题描述】:

请帮助我使用 FolioReaderKit Swift 解决此错误 在此处输入图片描述

【问题讨论】:

感谢您的回答,但仍然出现同样的问题,请帮助我 FolioReaderKit 是一个存档存储库,这意味着原始维护者不再支持它。据我所知,它使用的 UIWebView 已被弃用,不能再在 ios 应用程序中使用。解决此问题的范围超出了 SO 问题,因为它需要重写依赖项以使用 WKWebView。 【参考方案1】:

在我的应用程序中使用 Folioreader 时,我也遇到了同样的崩溃。我已通过在我的代码中进行以下更改来修复它。

在 FolioReaderAudioPlayer.swift 文件中。更新这 5 个方法。

 @objc func pause() -> MPRemoteCommandHandlerStatus 
        playing = false

        if !isTextToSpeech 
            if let player = player , player.isPlaying 
                player.pause()
            
         else 
            if synthesizer.isSpeaking 
                synthesizer.pauseSpeaking(at: .word)
            
        
        return .success
    

    @objc func togglePlay() -> MPRemoteCommandHandlerStatus 
        isPlaying() ? pause() : play()
        return .success
    

    @objc func play() -> MPRemoteCommandHandlerStatus 
        if book.hasAudio 
            guard let currentPage = self.folioReader.readerCenter?.currentPage else  return .commandFailed 
            currentPage.webView?.js("playAudio()")
         else 
            self.readCurrentSentence()
        
        return .success
    

  @objc func playPrevChapter() -> MPRemoteCommandHandlerStatus 
        stopPlayerTimer()
        // Wait for "currentPage" to update, then request to play audio
        self.folioReader.readerCenter?.changePageToPrevious 
            if self.isPlaying() 
                self.play()
             else 
                self.pause()
            
        
        return .success
    

    @objc func playNextChapter() -> MPRemoteCommandHandlerStatus 
        stopPlayerTimer()
        // Wait for "currentPage" to update, then request to play audio
        self.folioReader.readerCenter?.changePageToNext 
            if self.isPlaying() 
                self.play()
            
        
        return .success
    

【讨论】:

以上是关于“不支持的操作方法签名”。 FolioReader Swift,错误的主要内容,如果未能解决你的问题,请参考以下文章

Swift 5.1 NSInternalInconsistencyException 错误