2011-06-17 5 views
1

Je crée une application Questions et réponses pour iPhone qui permet à l'utilisateur de répondre aux questions affichées.Meilleure façon de stocker des données sur l'iphone

Actuellement j'appelle un service Web pour stocker les réponses des utilisateurs. Mais je suis un peu inquiet de savoir si le service Web tombe en panne. J'ai besoin de stocker les réponses des utilisateurs localement, puis d'appeler le service Web quand il est opérationnel.

Comment puis-je stocker les réponses des utilisateurs lorsque le service Web est arrêté? Est-ce que Sqllite est une bonne option pour ça?

Veuillez nous suggérer.

Merci,

Répondre

4

est-SqlLite une bonne option pour cela?

Oui, SQLite est décidément une bonne option. L'autre choix serait Core Data.

Use CoreData or SQLite on iPhone?

+0

Bien sûr, vous pouvez également utiliser le framework Core Data avec sqllite. –

1

Il devrait être, oui. J'ai mis en place une application basée sur les données de base avec des entités pour les questions et réponses et de mettre en place des relations entre eux. Ensuite, il suffit d'utiliser NSFetchedResultsController ou tout ce que vous voulez recueillir et afficher les données

1

Vous avez plusieurs options:

  1. Sqlite
  2. Core Data
  3. stockage côté client

Si Si vous souhaitez utiliser l'itinéraire Web, jetez un coup d'œil à Safari Client-Side Storage and Offline Applications Programming Guide.

Fondamentalement, vous stockez une copie locale de la base de données dans la mémoire afin que le service Web soit désactivé, les utilisateurs peuvent toujours utiliser l'application.

4

Cela dépend de la complexité de votre modèle de données. J'ai regardé quelque chose comme ça récemment et voici ce que j'ai appris. Les méthodes de stockage de données les plus populaires de l'iPhone sont:

  • plist
    • Bon pour les petites quantités (centaines de Ks) de données hiérarchiques.
    • Mauvais si les relations ou les requêtes sont complexes (puisque vous devez écrire le code).
    • Très easy to learn.
    • Prend en charge les éléments array, dict, string, data, date, entier, réel, booléen.
    • Vous pouvez le stocker au format XML, qui est modifiable et portable, ou en tant que fichiers binaires, ce qui est plus rapide.
  • Core Data
    • Il est un gestionnaire de graphe d'objet avec la recherche et la fonctionnalité persistante.Vous avez besoin d'un bon few hours of learning.
    • Facile à utiliser une fois que vous set it up.
    • Mieux qu'un plist car il vous permet de gérer les graphiques d'objets, développer votre modèle objet, écrire des requêtes, annuler/rétablir, migrer vers des modèles de données modifiés, gérer la mémoire et gérer les accès concurrents.
    • Mieux que SQLite car:
      • La performance est similaire et la vitesse de développement est plus rapide.
      • La création d'objets est plus rapide.
      • Lorsque les objets sont en mémoire, l'exécution de requêtes ne nécessite pas de recherche dans le backend (qui est généralement de la mémoire ou SQLite).
  • SQLite
    • Une base de données.
    • Mieux que les données de base lorsque l'opération ne nécessite pas de mettre des objets en mémoire. Exemple: mettre à jour, supprimer et sélectionner 1 (voir si quelque chose existe). Il a une recherche plein texte si vous compile the extension.
    • Le plus difficile à apprendre. Plus facile si vous utilisez un wrapper: FMDB, egodatabase.

Si vous pouvez vous en sortir avec un plist faire. Si vous voyez la quantité de code que vous devrez écrire est trop de travail, alors passez aux données de base. Seulement si vous êtes un expert et absolument need the performance utiliser SQLite (à moins, bien sûr, vous connaissez déjà SQLite et non des données de base).

Questions connexes