2009-05-29 10 views
14

Je travaille sur une application de base de données (pour iPhone 3.0, bien que je ne pense pas que fait vraiment une différence ici) et il devra être livré avec une base de données « starter » rempli de données. Avec SQLite, je voudrais juste que l'application copie la base de données peuplée de l'ensemble dans le répertoire de documents de l'application au premier lancement, puis charger cette base de données - toutes les informations viendraient avec et nous serions prêts à partir. Mais avec les données de base, je ne suis pas vraiment sûr de pouvoir simplement enregistrer le magasin Persistent dans l'ensemble de l'application et de le copier avant que Core Data commence à faire son travail. Cela va-t-il causer des problèmes? Il y a pas mal de données initiales, donc je ne veux pas l'empaqueter dans un autre format et je dois l'analyser.Fournir des données de base pour l'application de données de base?

+0

Bonjour Zaph pourriez-vous clarifier cela s'il vous plaît? Vérification du tampon de fichier modifié Je vois que le fichier est toujours modifié indépendamment de l'extension. Comment voulez-vous dire que Xcode modifie le contenu du fichier? –

Répondre

17

Oui, vous pouvez copier sur une mémoire persistante prérempli.

J'ai créé une application Mac qui renseigne un magasin. Il est copié dans mon bundle et, au début, copié dans le répertoire Docs. Cela fonctionne bien. On me dit que l'exemple de Core Data Books a été développé de la même manière.

S'il vous plaît noter que cela ne signifie pas que vous pouvez simplement copier sur tout ancien fichier SQLite. Il doit s'agir d'un magasin persistant Core Data, bien que je pense que vous compreniez cela en fonction de votre question.

+0

Pensez-vous qu'il est autorisé de remplir par programme le magasin persistant sur la première exécution de mon application? Cela ne rendrait-il pas mon application beaucoup plus petite à transférer puisque j'aurais besoin d'une base de données SQLite? – leolobato

+1

Si votre application peut le faire rapidement, sans énerver un utilisateur en attente, alors cela semble être un bon moyen de le faire. – Hunter

+1

Faites attention. À moins que vos données puissent être générées de manière algorithmique, il semble que les économies de taille de fichier que vous obtenez en remplissant vos données au moment de l'exécution soient compensées par la quantité de code de remplissage de données que vous devez inclure dans votre application. –

1

En fait, il y a un truc: vous devez nommer le fichier que vous allez copier avec une extension autre que « .sqlite », « .bin » fera. Sinon, Xcode changera le contenu du fichier quand il le copie dans l'application pendant la phase de construction et il ne se chargera pas.

+0

Est-ce toujours vrai? – Suragch

+0

Désolé, je ne sais pas. – zaph

Questions connexes