2013-06-20 48 views
0

我有一個包含超過100個表的sqlite數據庫。每個表格包含50多列。我想將數據庫導入到CoreData中。以編程方式將列和表添加到CoreData

我可以在CoreData中創建對應於sqlite數據庫的表並添加列,還是必須在CoreData中逐個手動創建表?

回答

0

可以以編程方式創建核心數據模型。創建一個NSManagedObjectModel,爲該模型創建一些NSEntityDescription實例等。關於核心數據模型的所有內容都可以在代碼中配置,並且都有很好的文檔記錄。

但是,如果您尚未加載使用該模型的持久性存儲,則只能執行此操作。一旦持久存儲,NSManagedObjectModel實例必須被視爲只讀。加載商店後修改它會引發異常。如果你這樣做了一次來創建你的初始模型,那很好,但如果你想一直這樣做,那麼你很可能會遇到問題。

既然你已經有了這個SQLite數據庫,你最好把它放在SQLite中,而不是使用Core Data。對於SQLite有幾個很好的Objective-C包裝 - 請查看PLDatabaseFMDB

0

你應該使用sqlite來達到這個目的,因爲這對核心數據來說仍然是不可能的。核心數據使用NSManagedObjectModel來創建在編譯期間生成的實體模型。

結束語 - 爲此使用Sqlite數據庫。

0

恐怕這是CoreData目前無法實現的。

要使用核心數據,您必須定義持久性存儲和管理對象模型。這些類是用來表示在「.xcdatamodeld」中創建的實體的類。這些不能在運行時生成。

所以更好的做法是使用Sqlite或其他數據庫庫在運行時動態創建表。

相關問題