我有一个使用sql base的应用程序。我在开头用1 Entity
,10 Attributes
创建了这个基础。
所以,现在我必须添加新属性。 (另外4个),所以我做了版本控制,模型......更新。
然后,我更改了我的应用程序以访问我的新字段值。但是,我不明白的是,我的应用程序可以在更新的sqlite数据库中访问我的新字段。
当然做错了但老实说不知道。
答案 0 :(得分:0)
您是否正在使用SQLite在这里完全没有区别。同样,如果轻量级迁移正在运行(即商店正在成功打开),那么就可以说更多了。
假设您正在使用NSManagedObject
子类,那么您可能没有意识到的仅仅是更新您的模型并不会更新您为其生成的类。所以你需要再次这样做。它会将新属性添加到相关类中。
您可以使用键值编码进行快速测试,以证明字段在那里 - 例如
NSLog(@"%@", [object valueForKey:@"newProperty"]);
...但你应该坚持生成新的类定义并使用从那里流出的运行时合成的getter和setter,因为它可以让编译器更好地验证你输入的内容和将在运行时提供更高效的代码。