Comment précharger des données dans une application iOS à l'aide de files sqlite

Avant la nouvelle version de Xcode 5 , j'étais capable de précharger datatables dans mon application cinput sur datatables en référençant le file du projet. Cependant, depuis que j'ai mis à jour mon XCode , mes données json sont maintenant sauvegardées dans 3 files:

  1. un file .sqlite vide

  2. un file .sqlite-wal

  3. un file .sqlite-shm.

Comment puis-je importer ces données dans mon application?

Dans le passé, tout ce que j'avais à faire était de copyr le file sqlite et j'avais terminé. Maintenant, je n'ai aucune idée du file que je suis censé copyr.

J'ai découvert sur le site de développement d'Apple que pour get des données de base à l'ancienne (pré-iOS 7) et générer uniquement le file sqlite, j'ai dû append ceci à la méthode persistStore addStore, sous le paramètre options.

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

J'espère que cela aide quelqu'un d'autre qui rencontre ce problème.

À votre santé

Je peux confirmer le "compactage" de la database à l'aide de l'extension FIREFOX fournie par @Lukasz Kowalski. Ceci est confirmé avec 10.9.1 / Xcode 5 / iOS 7. Pour clarifier la procédure … téléchargez Firefox, puis récupérez son add-on SQLite Manager .

  1. Copiez le dossier StoreContent contenant les files PersistentStore, PersistentStore-wal et PersistentStore-shm sur le bureau pour les regrouper en une seule database UIManagedDocument pré-iOS7 qui fonctionne comme auparavant. où find:

     ~/Library/ApplicationSupport/iPhoneSimulator/7.xx/Applications/gobble-d-gook/APPNAME/Documents/APPNAMEDatabase/StoreContent/{your database files} 
  2. Lancez Firefox, ouvrez la window, à partir du menu devises> Gestionnaire SQLite

  3. Utilisez SQLite Manager pour ouvrir la database: desktop> StoreContent> PersistentStore
  4. Sélectionnez dans le menu> option Compacter la database.
  5. Sélectionnez dans Menu> Fermer la database
  6. terminé! ils sont combinés.

Essayez juste le file sqlite. Voyez si cela fonctionne, ajoutez les deux autres un par un.

Vous pouvez également save le file JSON dans un file txt et le charger dans datatables de base. Selon la quantité de données que vous avez, vous devriez le faire par lots, le premier lot étant juste assez grand pour remplir la première vue, puis continuer à parsingr le rest. Tout dans une queue de fond bien sûr. Pas aussi facile qu'avant, mais c'est une solution. Peut-être que quelqu'un d'autre a une meilleure solution?

J'ai trouvé la solution pour créer un file .sqlite quand vous avez 3 files: .sqlite, .sqlite-wal et .sqlite-shm. Pour ce faire, vous devez utiliser l'addon "SQLite Manager" pour Firefox ( https://addons.mozilla.org/pl/firefox/addon/sqlite-manager/?src=userprofile ):

  1. installez et exécutez addon dans Firefox
  2. ouvrez votre coredata .sqlite à partir du directory de votre application dans iPhone Simulator
  3. utilisez la database compacte qui produira un file .sqlite 🙂
  4. maintenant vous pouvez utiliser l'ancienne méthode (antérieure à XCode 5) pour inclure .sqlite dans votre application