【问题标题】:CoreData & sqlite核心数据和 sqlite
【发布时间】:2014-09-18 07:30:28
【问题描述】:

我有一个使用 sql 库的应用程序。我在开始时使用1 Entity10 Attributes 创建了这个基础。 所以,现在我必须添加新属性。 (4 更多),所以我做了版本控制,模型......更新。

然后,我更改了我的应用程序以访问我的新字段值。但是,我不明白的是,我的应用程序如何访问更新后的 sqlite 数据库中的新字段。

确实做错了什么,但老实说不知道。

【问题讨论】:

    标签: xcode sqlite core-data ios7


    【解决方案1】:

    您是否使用 SQLite 在这里完全没有区别。同样,如果轻量级迁移正在工作(即商店正在成功打开),那么就没有什么可说的了。

    假设您正在使用NSManagedObject 子类,那么您可能没有意识到仅仅更新您的模型并不会更新您为它生成的类。所以你需要再做一次。它会将新属性添加到相关类中。

    您可以使用键值编码编写一个快速测试来证明字段存在 - 例如

    NSLog(@"%@", [object valueForKey:@"newProperty"]);
    

    ...但是您可能应该坚持生成新的类定义并使用从那里流出的运行时合成的 getter 和 setter,因为它可以让编译器更好地验证您正在输入的内容并导致更多运行时的高效代码。

    【讨论】:

    • 对,我正在使用 MSManagedObject,但是,如何重新生成它。试图重做光迁移,....但是,还是一样。 valueKey 返回 nil。
    • 子类是从方案中生成的,是编译的一部分。迁移只会在运行时发生一次。
    • 明白了,但是,通过添加属性进行轻迁移后,如何建立与我的sql库的链接。或者如何访问新的 sql 字段? (是自动创建还是我必须手动创建?)
    • 好的,所以,我找到了解决方案。所以让我轻松解释一下。没有明确提及的是,迁移工作完美,但是如何检查数据库?执行后,正确的数据库将存储在模拟器文件夹中。然后我把这个 sql base 和 waooouuu 修改了。然后,使用它来手动填充数据。 !!!!!!
    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 2010-11-05
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    相关资源
    最近更新 更多