我在我的iOS應用程序中使用coreData。可能的是,用戶添加,刪除數據到數據庫中。 我必須提供默認數據(一些不同的數據集)。 目前,我正在通過首次啓動應用程序來創建數據庫。我從csv文件中讀取數據並用它創建數據庫。 csv位於應用程序沙箱中; coreData(managedDocument)在ApplicationDocument中(在運行時創建...)。coredata - 傳送/設置默認數據
它適用於我 - 但我問我,蘋果是否允許,如果我將應用程序推到AppStore?
我在我的iOS應用程序中使用coreData。可能的是,用戶添加,刪除數據到數據庫中。 我必須提供默認數據(一些不同的數據集)。 目前,我正在通過首次啓動應用程序來創建數據庫。我從csv文件中讀取數據並用它創建數據庫。 csv位於應用程序沙箱中; coreData(managedDocument)在ApplicationDocument中(在運行時創建...)。coredata - 傳送/設置默認數據
它適用於我 - 但我問我,蘋果是否允許,如果我將應用程序推到AppStore?
這種方法沒有什麼錯,它不能成爲拒絕的理由。還有另一種方式來做到這一點。您可以按照現在的方式創建數據庫,複製.sqlite
文件並將其作爲默認數據庫提供。然後在應用第一次運行時複製它。下面的代碼將做到這一點:
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent: @"YourDBName.sqlite"];
if (![fileManager fileExistsAtPath:storeURL.path]) {
NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"YourDBName" ofType:@"sqlite"];
if (defaultStorePath) {
[fileManager copyItemAtPath:defaultStorePath toPath:storeURL.path error:NULL];
}
}
通過這種方法,你不會需要包括你csv
文件在你的包。
是的,蘋果確實允許運送默認填充的數據庫。 執行此操作的標準方法是在捆綁軟件中發送缺省數據庫,然後在啓動時檢查應用程序文檔目錄中是否有數據庫,如果該數據庫不存在,則將數據庫從您的捆綁軟件複製到文檔目錄。
我想到了這個解決方案;用一些@#ifdef DEBUG @刪除創建時的代碼,並按照你描述的方式使用sqlite。 – Thomas 2012-08-12 14:46:44
您還需要記住在歸檔應用程序之前取消選中「csv」形式的目標,因爲您不再需要它了。 – Adam 2012-08-12 14:50:09
你是什麼意思取消選中?如果我提供的sqlite文件,我必須刪除csv?是的,當然 – Thomas 2012-08-12 15:34:11