iphone - 在 Coredata 中预加载数据的最佳实践

标签 iphone ios core-data

<分区>

Possible Duplicate:
Way to Prepopulate Core Data with Certain Data

我需要一个建议:我开始开发一个应用程序来收集费用记录(核心数据后端)。我需要使用 3 个预加载实体(类型、项目和类别)部署应用程序,这些实体与记录的关系如下:

记录 ‹‹--›类型” “记录 ‹‹--›项目” "记录 ‹‹--›类别"

我打算在记录实体中插入/添加一个假对象,只是为了尊重类型、项目和类别之间的记录关系;关系是可选的。

从长远来看,加载这些列表及其关系的最佳方式是什么?我已经阅读了几种方法,所以我有点困惑。

a) 预填充数据库

b) 解析xml/csv

c) 在 didFinishLaunchingWithOptionsviewDidLoad 中插入新对象

所有三个列表在应用程序生命周期中加载一次;但是,该应用程序可能需要每 3-6 个月进行一些更新。 Item有200条记录,Type有3条记录,Category有30条记录;所有纯文本。

我正在使用 XCode4.2 Bulid 4C199。非常感谢您的帮助。

最佳答案

我通常使用版本控制的数据库,以及生成最新版本的代码。它将插入或更新记录和列等,支持将任何先前版本更新到最新版本,例如

if (noversiontable) {
    create tables;
    create defaults;
    set version to 1;
} else {
    get version;
}
if (version == 1) {
   updates to version 2;
   set version to 2;
}
if (version == 2) {
   updates to version 3;
   set version to 3;
}
saveVersion;

有时我只是添加列,有时我会删除它们甚至更改数据类型并进行某种处理。例如,我可能有一个地址字段并决定稍后添加地理编码。版本更新将包括处理现有记录并为它们运行地理编码。

关于iphone - 在 Coredata 中预加载数据的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8821991/

上一篇:ios - MGTwitterEngine 和 IOS 5.0.1 不工作,适用于 IOS 4.x

下一篇:ios - [NSURL initFileURLWithPath :]: nil string parameter when trying to load a view

相关文章:

iphone - 以编程方式将选择器添加到导航栏按钮

c - 为什么这个 uint32_t 转换在 iPhone 模拟器和 iPhone 设备上的行为不同?

ios - 如何从我的 iOS 应用程序打开带有最近通话摘要的 iPhone 手机应用程序?

ios - 将 NSArray 组件转换为整数或小数

ios - 如何将UIView添加到iOS中的UIScrollView中(具有动态内容的View)

objective-c - 有序集和核心数据 (NSOrderedSet)

ios - 由于核心数据迁移,应用程序在从应用程序商店更新后崩溃

iphone dev 如何检查按下的通知启动按钮

Storyboard Segue 未调用 iOS 协议(protocol)方法

ios - 如何在 Swift 中分配 CoreData 多对多关系?