代码之家  ›  专栏  ›  技术社区  ›  Nimrod

在核心数据持久存储中传送静态(只读)数据的正确方法是什么?

  •  3
  • Nimrod  · 技术社区  · 15 年前

    我想发送静态只读数据以在我的核心数据模型中使用。问题是有明显不同的持久性存储类型,我不知道这些类型的格式应该是不透明的,还是应该能够手工构造它们。

    现在我只有一个plist,它很小(可能总共有30个条目)。

    当应用程序第一次安装时,我应该编写代码将plist导入到我的数据存储中吗,或者是否可以通过某种方式发送手工构建的数据存储文件初始版本?

    (我使用的是默认的sqlite持久存储。)

    3 回复  |  直到 12 年前
        1
  •  3
  •   gerry3    15 年前

    我不会尝试手工构造它,但您确实应该执行导入并保存一个最终的核心数据sqlite文件以随应用一起提供。

    我计划编写一个小型的Mac实用程序(使用相同的数据模型),为我的iPhone应用程序生成核心数据sqlite文件(导入实际上来自一个Web服务器)。然后,我将把实用程序保存的文件添加到我的iPhone应用程序的项目中。

        2
  •  1
  •   Nimrod    15 年前

    为了给我自己的问题的答案增加一点内容,我注意到配方示例代码应用程序附带了一个默认的sqlite备份存储:

    // If the expected store doesn't exist, copy the default store.
    if (![fileManager fileExistsAtPath:storePath]) {
        NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"Recipes" ofType:@"sqlite"];
        if (defaultStorePath) {
            [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
        }
    }
    

    但是,为了另一个目的,它在plist文件中附带了一些静态只读数据!(temperaturedata.plist)那么去图……

        3
  •  0
  •   GregJaskiewicz    12 年前

    很少有人知道这一点,但实际上您可以在OSX上使用核心数据,然后在iOS上使用存储文件。因此,基本上编写一些使用完全相同的模式和模型对象的代码(它们都应该编译并在OSX上工作)。

    如果您了解iOS SDK,那么OSX开发就不难掌握了:-)

    高温高压