Xcode 12更新后迅速运行MLModels的新错误

问题描述

升级到Xcode 12和Swift 5.3后,我的MLmodel似乎不再正常工作,之前我没有任何问题。我确信这是一个简单的修复程序,只是我不知道如何修复。

let WpredictionModel = _14Win()

 func calculateWin() {
    guard let prediction = try? WpredictionModel.prediction(//all of my input data) else {
        fatalError("Unexpected runtime error.")
    }

我遇到了错误 不建议使用“ init()”:改用init(configuration :)并适当地处理错误。 在WpredictionModel声明之后。

我也得到这个错误

 @available(macOS 11.0,iOS 14.0,tvOS 14.0,watchOS 7.0,*)
    class func load(contentsOf modelURL: URL,configuration: MLModelConfiguration = MLModelConfiguration(),completionHandler handler: @escaping (Swift.Result<_14Win,Error>) -> Void) {
        MLModel.__loadContents(of: modelURL,configuration: configuration) { (model,error) in
            if let error = error {
                handler(.failure(error))
            } else if let model = model {
                handler(.success(_14Win(model: model)))
            } else {
                fatalError("SPI failure: -[MLModel loadContentsOfURL:configuration::completionHandler:] vends nil for both model and error.")
            }
        }
    }

解决方法

克里斯。 昨天Xcode12更新后,我遇到了同样的问题!

Xcode从我的mlmodel文件自动生成以下代码。 但是“ MLModel”没有“ loadContentsOfURL ...”。 自动生成的文件不可编辑,我无能为力...

    + (void)loadContentsOfURL:(NSURL *)modelURL configuration:(MLModelConfiguration *)configuration completionHandler:(void (^)(AIASCore * _Nullable model,NSError * _Nullable error))handler {
    [MLModel loadContentsOfURL:modelURL
                 configuration:configuration
             completionHandler:^(MLModel *model,NSError *error) {
        if (model != nil) {
            AIASCore *typedModel = [[AIASCore alloc] initWithMLModel:model];
            handler(typedModel,nil);
        } else {
            handler(nil,error);
        }
    }];
}