我在Swift中有一个CoreData数据库。我添加了一个新版本,其中我添加了3个属性。问题是,如果用户已经向数据库添加了一些值,在我将新属性添加到数据库之前,则应用程序将崩溃。这是因为我想用它的所有值读出整个数据库。但是,如果用户在添加新版本之前添加了一些值,那么新添加的属性中将没有值。 所以我读出了没有值的属性。我可以更改它,因为所有旧属性都会自动变成空字符串,所以它不会崩溃吗?或者我可以抓住错误或什么?
答案 0 :(得分:1)
一种方法是编写一个读取函数,该函数抛出并在错误处理中调用另一个用于旧输入的函数。如果您发布代码,PS会更容易帮助您
//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()
}