CoreData 迁移新属性 Swift

CoreData Migration new attribute Swift

我在 Swift 中有一个 CoreData 数据库。我添加了一个新版本,其中 添加了 3 个属性 。问题是,如果用户已经向数据库添加了一些值,在我向数据库添加新属性之前,应用程序将会崩溃。这是因为我想读出整个数据库及其所有值。但是如果用户在我添加新版本之前添加了一些值,那么在新添加的属性中将没有值所以我读出了没有值的属性。我可以更改它,让所有旧属性自动变为空字符串,这样它就不会崩溃吗?或者我可以捕获错误或其他什么吗?

一种方法是编写一个 reader 函数来抛出错误,并在错误处理中调用另一个用于旧输入的函数。 PS,如果你 post 代码

会更容易帮助你
//error type
enum Error: ErrorType{
    case OldInput
}
func fetchFromDatabase() throws {
   //do you fetching 
   if //condition if the new attribute exists {
        //fetch
        return
   }
   throw Error.OldInput
}

//calling it
do {
   try fetchFromDatabase()
} catch (error) {
   fetchFromDatabaseOld()
}