2011-12-23 5 views
0

J'utilise actuellement Xcode 4.2.1 et iOS 5. J'ai essayé d'utiliser SQlite3 mais je n'ai pas pu insérer ou mettre à jour des données car j'ai toujours cette erreur "tentative d'écriture d'une base de données en lecture seule". après la recherche, je trouve que c'est quelque chose lié à apple que vous ne pouvez pas copier la base de données dans le répertoire Documents pour être inscriptible!Stockage et récupération de données

Existe-t-il un autre moyen facile de résoudre ce problème ou d'utiliser une autre méthode de stockage des données?

grâce

+1

Vous pouvez copier la base de données dans votre répertoire Documents et la rendre accessible en écriture. Si vous avez essayé et que cela n'a pas fonctionné, montrez-nous votre code. –

Répondre

1

conseil: Vous devriez l'enregistrer dans le répertoire bibliothèque/cache. Ceci afin qu'il ne soit pas sauvegardé par iTunes ou iCloud. Je dis cela seulement parce que mon application a été rejetée pour cette raison.

iOS Data Storage Guidelines

NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; 
2

Oui, il y a une beaucoup meilleure méthode de stockage de données: base de données. Si vous êtes intéressé, il s'agit d'un good place pour commencer.

Apple a quasiment abandonné la quasi-totalité de la documentation sur SQLite et est passée à Core Data. Les données de base ont également un coup de pouce de performance, donc il n'y a pas de raison de l'utiliser.

+0

Les données de base ne sont-elles pas construites au-dessus de SQLite? – Oli

+0

@Oil Oui, mais il y a encore une amélioration des performances et c'est beaucoup plus facile à gérer. –

+2

Aussi, parce que CoreData est une abstraction, si Apple décide de tirer parti d'une technologie autre que sqlite à l'avenir, cela fonctionnera toujours :) – jerrylroberts

1

C'est la manière standard avec les périphériques Apple de gérer uniquement les fichiers en lecture/écriture dans le répertoire de documents. vous ne pouvez pas écrire dans un fichier s'il se trouve dans votre ressource d'application et vous devez le copier dans le répertoire du document pour y écrire quoi que ce soit.

Questions connexes