gpt4 book ai didi

ios - 核心数据迁移问题: storePath cannot be initiated

转载 作者:行者123 更新时间:2023-11-30 11:09:26 31 4
gpt4 key购买 nike

我尝试将一些核心数据代码从 swift 2 迁移到 swift 4。代码如下:

///  Removes the existing model store specfied by the receiver.
///
/// - returns: A tuple value containing a boolean to indicate success and an error object if an error occurred.
public func removeExistingModelStore() -> (success: Bool, error: NSError?) {
var error: NSError?
let fileManager = FileManager.default

if let storePath = storeURL.path {
if fileManager.fileExists(atPath: storePath) {
let success: Bool
do {
try fileManager.removeItem(at: storeURL)
success = true
} catch let error1 as NSError {
error = error1
success = false
}
if !success {
print("*** \(String(describing: CoreDataModel.self)) ERROR: [\(#line)] \(#function) Could not remove model store at url: \(String(describing: error))")
}
return (success, error)
}
}

return (false, nil)
}

构建错误显示“条件绑定(bind)的初始化程序必须具有可选类型,而不是‘字符串’”。所以我用谷歌搜索并按照建议删除可选绑定(bind):

let storePath = storeURL.path { ... }

那么上面的地方又出现了两个新的错误: 1. 无法调用非函数类型“String”的值; 2.变量在其自身初始值内使用

我相信上面的代码主要是用于设置/拆卸核心数据模型的样板代码。我是初学者,请帮忙!

最佳答案

如果您从 if let 中删除了 if ,那么您还必须删除 { } ,您可以尝试

public func removeExistingModelStore() -> (success: Bool, error: Error?) {

if FileManager.default.fileExists(atPath: storeURL.path ) {

do {
try FileManager.default.removeItem(at: storeURL)
return (true, nil)
} catch {

return (false, error)
}

}

return (false, nil)
}

关于ios - 核心数据迁移问题: storePath cannot be initiated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52321569/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com