【发布时间】:2010-11-01 23:12:42
【问题描述】:
我正在编写一个使用 Core Data 来持久化模型的 iPhone 3.0 应用程序。我希望使用默认数据集安装该应用程序。在为 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>
【问题讨论】:
-
我一直在从 plist 运行的第一个应用程序上填充 coredata 数据库,导致第一次运行加载时间很长。我一直看到人们说“使用您在应用程序包中生成的预填充 .sqlite 数据库”。 CoreData 书籍示例向您展示了如何在找到 .sqlite 文件后使用它,但它首先在哪里?我在这里找到了答案:ablogontech.wordpress.com/2009/07/13/…