我尝试将一些核心数据代码从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)
}
构建错误显示“条件绑定的初始化程序必须具有可选类型,而不是”字符串“”。因此,我在Google上搜索,并按照建议删除可选绑定:
let storePath = storeURL.path { ... }
然后,在上述位置出现两个新错误:1.不能调用非函数类型“String”的值; 2.在自身初始值内使用的变量
我相信上面的代码大部分是设置/拆卸核心数据模型的样板代码。我是一个初学者,所以请帮助!
1条答案
按热度按时间xzv2uavs1#
如果您从
if let
中删除了if
,那么您还必须删除{ }
,您可以尝试