2009-09-07 6 views

Répondre

5

Votre déclaration de "grandes quantités de texte" est ambiguë. Vous pourriez dire une des opérations suivantes:

  • Un grand ensemble (par exemple 10.000 articles) du petit texte (par exemple 30 mots) articles
  • Un petit ensemble (par exemple 50 points) de grand texte (par exemple 3000 mots) articles
  • Un grand nombre de grands éléments de texte ...

Je vais essayer de répondre à chacun de ces scénarios.

Si vous stockez un grand nombre d'enregistrements, je trouve qu'une base de données est toujours une bonne idée. Cela signifie utiliser SQLite ou CoreData. CoreData est un peu plus de travail à faire mais il y a beaucoup d'exemples autour et cette approche sera payante à long terme.

La raison principale pour laquelle une base de données est requise pour des ensembles de données volumineux est que vous n'avez pas besoin de tout charger en même temps. Vous ne voulez pas que vos utilisateurs restent assis pendant 30 secondes pendant que votre application charge tous ses enregistrements (même en supposant que tout sera en mesure de charger dans la mémoire - il va vite!). CoreData en particulier est conçu pour fonctionner avec ce modèle "charger uniquement les données que l'utilisateur doit voir".

Toutefois, si vous disposez d'un petit ensemble de données, même si chaque élément est relativement volumineux, il est peu probable que vous en tiriez beaucoup en les plaçant dans une base de données. Si vous pensez que la quantité de données pourrait augmenter dans le futur, cela vaut la peine de le faire. Mais s'il est susceptible de ne jamais croître, vous pouvez probablement vous en passer avec l'archivage - et peut-être même le plus facile de tous les mécanismes, en plaçant un tableau ou un dictionnaire directement dans une plist. C'est le moyen le plus rapide de mettre en œuvre, mais comme décrit ci-dessus est certainement une mauvaise idée dans un certain nombre de situations.

Espérons que ça aide!

+0

Certainement deuxième. CoreData est un peu déroutant au début, mais une fois que vous vous y êtes habitué, cela fonctionne très bien et clairement, et la performance est excellente. Il résume la plupart de la base de données loin de vous (ce qui était un avantage majeur pour moi). Je suggère d'aller avec CoreData si vous le pouvez. – jbrennan

+0

ok je vais aller avec CoreData. Et je ne sais pas combien de mots, tout dépend de la façon dont l'utilisateur l'utilise. Si je devais faire une estimation je dirais que la moyenne serait d'environ 300 mots (par document) –

+0

est-ce que quelqu'un a un lien vers un bon guide sur la façon d'utiliser Coredata? –

1

Je dirais que si votre texte/vos données ne sont que de quelques kilo-octets, alors optez pour des méthodes d'archivage, sinon sqlite est là pour vous. Bonne chance.

+0

réaliser des méthodes? ... – h4xxr

+0

Désolé je veux dire des méthodes d'archivage. – itsaboutcode

+0

@matt Consultez le didacticiel suivant sur les données de base. http://cocoadevcentral.com/articles/000085.php – itsaboutcode

Questions connexes