2008-10-28 4 views
0

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

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 :.

+0

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. –

+0

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. –

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