请有人指导我使用'错误处理'方法和我下面的'工作'(Swift 4)代码进行良好练习...(例如:'Guards','Do','Catch',Throw', 'if','else')...
//// Import ////
import UIKit
import CoreData
//// Custom Function ////
func insertCoreData(){
if let coreData = (UIApplication.shared.delegate as? AppDelegate)?.persistentContainer.viewContext {
let data = MyEntity(entity: MyEntity.entity(), insertInto: coreData)
data.name = "Joe Blogs"
data.country = "United Kingdom"
try? coreData.save()
print("Data Saved...")
}
}
//// Output Function ///
insertCoreData() // Working and Gives
答案 0 :(得分:0)
如果你打算使用“try?”进行错误处理,那么你会遇到很多麻烦,尤其是在保存数据这样的情况下。
请大家帮忙并使用正确的do / try / catch(或重新投掷)作为处理错误的标准方法并仅使用try?或者尝试!在你意识到后果的非常具体的情况下。这是更多的代码编写,但只要你遇到某种问题,你就会感激额外的努力。
do {
try coreData.save()
} catch {
print("Unable to save Managed Object Context")
print("\(error), \(error.localizedDescription)")
}
答案 1 :(得分:0)
Do,Try,Catch是一个很好的开始,它是Xcode在CoreData安装过程中为您加载的默认实现。
同时,它建议您为应用程序实施正确的错误处理。以下是一些原因。默认情况下,它只会输出错误信息。
/*
Typical reasons for an error here include:
* The parent directory does not exist, cannot be created, or disallows writing.
* The persistent store is not accessible, due to permissions or data protection when the device is locked.
* The device is out of space.
* The store could not be migrated to the current model version.
Check the error message to determine what the actual problem was.
*/
Sean Allen有一个关于Do,Try Catch的好视频,展示了如何处理错误的示例。看看这个。 youtube - do, try, catch