2

升级到 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()' is deprecated: Use 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.")
            }
        }
    }
4

1 回答 1

0

克里斯。昨天更新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);
        }
    }];
}
于 2020-09-20T06:08:02.623 回答