Я попытался перенести некоторый код основных данных из 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)
}
В сообщении об ошибке сборки сказано, что «Инициализатор для условного связывания должен иметь необязательный тип, а не« String »».Так что я погуглил и последовал предложению удалить необязательную привязку:
let storePath = storeURL.path { ... }
Тогда у него появилось две новые ошибки в вышеуказанном месте: 1. Невозможно вызвать значение нефункционального типа 'String';2. Переменная, используемая в ее собственном начальном значении
Я полагаю, что приведенные выше коды в основном представляют собой стандартные коды для моделей данных настройки / демонтажа активной зоны.Я новичок, поэтому, пожалуйста, помогите!