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()
}
我在 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()
}