代码之家  ›  专栏  ›  技术社区  ›  Mcrich

-[FBLPromise HTTPBody]:非初始启动时发送到实例0x600001afa700的无法识别的选择器出错。谷歌翻译MLKit

  •  0
  • Mcrich  · 技术社区  · 3 年前

    我正在尝试将Google MLKit Translate添加到我的SwiftUI项目中。我已经在通过SPM使用firebase,只有在首次启动后才会出现以下错误: -[FBLPromise HTTPBody]: unrecognized selector sent to instance 0x600001afa700

    这是我的代码:

    程序委托

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            ...
            FirebaseApp.configure()
            ...
            let spanishRemoteTranslator = TranslateRemoteModel.translateRemoteModel(language: .spanish)
            if ModelManager.modelManager().isModelDownloaded(spanishRemoteTranslator) {
                print("Spanish Translator Downloaded")
            }else {
                print("Downloading Spanish Translator")
                
                ModelManager.modelManager().download(spanishRemoteTranslator, conditions: ModelDownloadConditions(allowsCellularAccess: true, allowsBackgroundDownloading: true))
            }
            return true
    }
    

    然后我这样称呼它:

    if ModelManager.modelManager().isModelDownloaded(spanishModel) {
        Translator.translator(options: englishSpanishTranslator).translate(buis.name!) { translatedText, error in
            if error == nil {
                if let translatedText = translatedText {
                    name = translatedText
                }else {
                    print("error = \(error)")
                }
            }else {
                print("error = \(error)")
            }
        }
    }else {
        print("error = Spanish not downloaded")
    }
    

    我也尝试过使用内置的FirebaseMLKitDownload,但它没有翻译器。怎么回事?

    0 回复  |  直到 3 年前
    推荐文章