J'ai plusieurs tableaux de tableaux ou de tableaux de dicts que je voudrais stocker dans mon application iPhone. Ces listes sont statiques et ne seront pas modifiées par l'application ou les utilisateurs. Parfois, ils peuvent être affichés, mais plus susceptibles d'être itérés sur et comparés à une valeur d'entrée. Le meilleur moyen de stocker ces tableaux serait-il un stockage de données CoreData/SQLite, dans un fichier d'en-tête, ou quelque chose à quoi je ne pense pas? Je pourrais voir faire une classe dans laquelle seuls ces tableaux sont stockés, mais je ne suis pas sûr que ce soit la meilleure voie à suivre.Meilleure façon de stocker des tableaux/dicts de référence statiques dans Cocoa touch
0
A
Répondre
4
je ferais ce qui suit:
@implementation DataSource
+ (NSArray *)someData
{
static NSArray *data = nil;
if (!data) {
data = [[NSArray arrayWithObjects:..., nil] retain];
}
return data;
}
@end
tableaux supplémentaires ou des tableaux de dicts seraient ajoutés comme des méthodes de classe sur cette classe.
5
Utilisez un fichier de liste de propriétés. Chargez-le avec NSDictionary + dictionaryWithContentsofFile :.
1
Selon la fréquence à laquelle vous souhaitez modifier ou localiser les éléments, ainsi que vos besoins en termes de temps de recherche, un tableau statique peut également vous convenir. Pour les données constantes, cependant, SQLite n'est probablement pas la voie à suivre, à moins que vous ayez des exigences de requête complexes (par opposition à juste par-index).
4
Je voudrais aller pour l'approche plist.
Questions connexes
- 1. Meilleure façon de stocker des URL localement
- 2. Jouer des sons purs dans Cocoa Touch
- 3. Cocoa-Touch: redimensionnement dynamique des vues
- 4. Quelle est la meilleure façon de stocker les variables de test unitaires statiques?
- 5. Meilleure façon de stocker les critères Badge?
- 6. meilleure façon de stocker/utiliser plusieurs langues
- 7. Cocoa Touch UITableView Données
- 8. Coulée d'objets dans Cocoa touch
- 9. Faire pivoter UIView dans Cocoa Touch
- 10. Cocoa-touch - fichiers d'implémentation?
- 11. Meilleure façon de stocker une matrice clairsemée dans .NET
- 12. Cocoa Touch: Disposer des dates dans un calendrier mensuel
- 13. Meilleure façon de stocker plusieurs contrôles dans un tableau
- 14. Cocoa-Touch: gestion de la mémoire
- 15. Question sur extensiblity de Cocoa Touch Controls
- 16. Modèle "Cocoa Touch Application" de Xcode 3.1.1
- 17. Meilleure façon de stocker le champ de type muti
- 18. Classes en double dans Cocoa-Touch
- 19. Référence parent dans Cocoa
- 20. Meilleure façon de stocker une taille de fichier en octets?
- 21. Cocoa et Cocoa Touch: un objet dans le dictionnaire?
- 22. Xcode App manquant Cocoa Touch
- 23. La meilleure façon d'utiliser XML-RPC dans l'application Cocoa?
- 24. Soutenir un nombre limité de devises dans Cocoa (Touch)
- 25. Meilleure façon de stocker des valeurs enum dans la base de données - Chaîne ou Int
- 26. Comment vérifier un certificat de site Web dans Cocoa Touch?
- 27. Bouton de commutation ne fonctionne pas dans Cocoa-Touch
- 28. Meilleure façon de stocker la langue souhaitée par l'utilisateur
- 29. Problème de source de données de tableau Cocoa Touch
- 30. Bibliothèque Open Source Cocoa/Cocoa-Touch POP3/SMTP?
Bien que je serais d'accord avec vous sur le Mac, je ne suis pas d'accord sur l'iPhone. Faire des E/S est essentiellement une perte de temps s'ils sont simplement statiques. Si l'ensemble de données est trop grand pour tenir dans la mémoire, il devrait être dans SQLite, mais l'OP n'a rien mentionné à propos de l'ensemble de données étant particulièrement grand. –
IO is IO ... Si vous le compilez dans votre application, vous effectuerez l'IO, il sera juste fragmenté dans la section TEXT de votre application et demande chargée par le pager de fichier. Si vous le placez dans un fichier, vous pouvez contrôler la localité, si vos données sont le TEXTE des applications, vous avez moins de contrôle sur lui. –