我正在編寫一個使用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