Я пишу приложение для iPhone 3.0, которое использует Core Data для сохранения модели. Я хотел бы, чтобы приложение было установлено с набором данных по умолчанию. При разработке для iPhone <3.0 я использовал сценарий SQL для инициализации базы данных перед запуском сборки, а затем развернул подготовленный файл .sqlite в качестве ресурса приложения. Каков наилучший подход с Core Data. </p>
Вывод: В конце я написал общий обработчик 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>