2013-10-25 56 views
2

在構建新的Xcode 5之前,我可以通過引用項目中的文件將數據預加載到我的核心數據驅動的應用程序中。然而,自從我升級我的XCode,我的JSON數據現在被保存到3個文件:如何使用sqlite文件將數據預加載到iOS應用程序

  1. 空.sqlite文件

  2. 一個.sqlite,沃爾瑪文件

  3. 一個。 sqlite-shm文件。

如何將這些數據導入到我的應用程序中?

在過去我只需要複製sqlite文件,我就完成了。現在,我不知道我應該複製哪個文件。

+0

只應使用.sqlite文件。在複製之前,確保你沒有在別處使用你的數據庫。或者通過shell連接到db並使用'.backup'創建一個副本。 –

回答

1

我從蘋果的開發者網站上發現,爲了讓核心數據以舊方式運行(iOS 7之前),並生成sqlite文件,我必須將其添加到persistentStore addStore方法中選項參數。

@{ NSSQLitePragmasOption : @{ @"journal_mode" : @"DELETE" } } 

我希望這可以幫助任何遇到此問題的人。

乾杯

+0

你能更清楚嗎?只需給出更多的代碼行。 – tong

+0

更多行代碼? – Josh

0

試試只是sqlite文件。看看它是否有效,將其他兩個一個一個添加。

+0

我試過了。我實際上添加了所有3個文件,但沒有運氣。我猜我必須添加一些代碼來處理新文件,但我不確定如何去做。 – Josh

0

您還可以將JSON保存在txt文件中,並在加載時將其解析到Core Data中。根據你有多少數據,你應該批量執行此操作,第一批只能填充第一個視圖,然後繼續解析其餘部分。全部在背景排隊的背景中。 不像以前那麼容易,但這是一個解決方案。也許別人有更好的解決方案?

0

我已經找到解決方案來創建1個.sqlite文件時,你有3個文件:.sqlite,.sqlite,沃爾瑪和.sqlite-SHM。要做到這一點,你應該使用「的SQLite管理器」插件的Firefox(https://addons.mozilla.org/pl/firefox/addon/sqlite-manager/?src=userprofile):

  1. 安裝在Firefox
  2. 運行插件從您的應用程序的目錄在iPhone打開coredata .sqlite模擬器
  3. 使用緊湊型數據庫,這將產生1個.sqlite文件:
  4. 現在你可以使用老方法(之前的XCode 5)包括.sqlite到你的應用
1

我可以證實,「密實」的databas e使用@Lukasz Kowalski提供的FIREFOX插件在此通過10.9.1/Xcode 5/iOS 7進行確認。爲了闡明步驟... 下載Firefox,然後獲取他的SQLite管理器加載項。

  1. 複製封閉與PersistentStore,PersistentStore,沃爾瑪和PersistentStore-SHM文件StoreContent文件夾,桌面,其功能如同前重新組合成單​​個預iOS7 UIManagedDocument數據庫。在哪裏可以找到:

    ~/Library/ApplicationSupport/iPhoneSimulator/7.xx/Applications/gobble-d-gook/APPNAME/Documents/APPNAMEDatabase/StoreContent/{your database files} 
    
  2. 啓動Firefox,打開的窗口,從菜單工具> SQLite的經理

  3. 使用SQLite Manager打開數據庫:桌面​​> StoreContent> PersistentStore從菜單
  4. 選擇>壓縮數據庫選項。
  5. 從菜單中選擇關閉數據庫
  6. 完成!它們結合在一起。
相關問題