我正在编写一个使用Core Data来持久保存模型的iPhone 3.0应用程序。我希望应用程序使用默认数据集进行安装。在开发iPhone < 3.0时,我使用SQL脚本在运行构建之前初始化数据库,然后将准备好的.sqlite文件作为应用程序资源进行部署。核心数据的最佳方法是什么?基于Core Data的iPhone应用程序的默认数据集
结论:最后我写了一个通用的XML处理程序。元素名称映射到Objective-C类名称和属性名称。元素中的PCDATA值被转换为由元素命名的属性中声明的类型。子元素或属性元素已解析为对象实例 - 因此通过解析XML文档构建对象图。我不得不与Objective-C运行第一次交手,虽然:-)
实例目标类:
@interface Widget : NSObject {
@private
NSString* name;
NSSet* sprockets;
}
@property (nonatomic, retain) NSString* name;
@property (nonatomic, retain) NSSet* sprockets;
- (void)addSprocketsObject:(Sprocket*)value;
@end
@interface Sprocket : NSObject {
@private
NSString* name;
NSNumber* canFly;
NSNumber* wheels;
}
@property (nonatomic, retain) NSString* name;
@property (nonatomic, retain) NSNumber* canFly;
@property (nonatomic, retain) NSNumber* wheels;
@end
实例默认数据:
<data>
<Sprocket id="sprocket-1">
<name>Sprocket1</name>
<wheels>4</wheels>
</Sprocket>
<Widget id="widget-1">
<name>MyWidget</name>
<sprockets>
<Sprocket ref-id="sprocket-1"/>
<Sprocket id="sprocket-2">
<name>Sprocket2</name>
<canFly/>
</Sprocket>
<Sprocket id="sprocket-3">
<name>Sprocket3</name>
</Sprocket>
</sprockets>
</Widget>
</data>
我一直在从plists运行的第一个应用程序上填充coredata数据库,导致非常长的首次运行加载时间。我不断看到人们说“使用您在应用程序包中生成的预填充的.sqlite数据库”。 CoreData书籍示例向您展示了如何在找到它时使用.sqlite文件,但它在哪里呢?我在这里找到了答案:http://ablogontech.wordpress.com/2009/07/13/using-a-pre-populated-sqlite-database-with-core-data-on-iphone-os-3-0/ – Prairiedogg 2009-10-02 15:18:00