2009-10-08 100 views
3

我使用核心數據在Mac上創建SQLite文件,然後將其放置在我的iPhone應用程序中(如果好奇的話,則爲GitHub project)。我想用更新的SQLite文件發佈應用程序的更新。該模型將是相同的實體和屬性,只會有更多的數據。替換應用程序中的核心數據SQLite文件

我在模擬器中用舊的sqlite文件運行應用程序。出口。用xcode中的新文件替換sqlite文件。將NSMigratePersistentStoresAutomaticallyOption和NSInferMappingModelAutomaticallyOption添加到addPeristentStore選項。然後再次運行應用程序,但應用程序只顯示來自原始文件的相同數據。

我也嘗試根據Apple文檔和此SO post版本化模型並重命名sqlite文件。但仍然沒有運氣(我猜,因爲模型仍然是一樣的?)。

關於如何讓應用程序讀取新的sqlite文件的任何想法?

回答

3

我的核心數據iPhone應用程序使用項目創建時提供的標準代碼,並選擇「使用核心數據存儲」。
它會切換當我改變我的文件名不變「DB_NAME」和的值,用於重建SQLite數據庫:

NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent:DB_NAME]]; 

NSError *error = nil; 
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; 
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) { 
相關問題