2010-01-19 3 views
0

Voici mon scénario: je dois sauvegarder 50 lignes de texte et accéder à chaque ligne de texte après le lancement de mes applications. C'est-à-dire que pour un changement dans un paramètre de contrôle, le texte affiché sur l'iPhone devrait changer (c'est-à-dire pointer vers la deuxième ligne de texte, puis le troisième ...). Au lieu de SQLite, je veux stocker ces données dans une liste de propriétés et ensuite accéder aux données en conséquence (pas de changements au modèle de données requis). J'ai d'abord pensé créer une instance de NSDictionary et stocker des objets string (lignes de texte). Cependant, le dilemme est: comment puis-je créer la liste de propriétés pour le cas mentionné ci-dessus, puis accéder aux données pendant l'exécution.Comment stocker des lignes de texte dans une liste de propriétés sur l'iPhone?

Exemple de code serait vraiment apprécié. J'ai essayé de comprendre les listes de propriétés, mais je ne suis toujours pas capable de les comprendre. Merci.

+3

Un grand nombre de Les utilisateurs de Stack Overflow sont des hommes et des femmes grincheux qui ne peuvent pas comprendre le txt. Vous aurez certainement une meilleure réponse si vous prenez un peu de temps pour traduire cette question. –

+0

@nevan Je ne veux sauvegarder aucune donnée lorsque l'application se ferme. C'est juste que si je dois stocker un nom de 50 produits dans un plist wen l'application lance supposons que je clique sur un contrôle que je veux de nom d'un produit aléatoire à apparaître dans de vue (seulement quand je clique de contrôle) .Whats buggin moi est de fait de savoir comment stocker un plist statique pour cela (dois-je taper 50 noms de produits pour une instance de dictionnaire) de telle sorte que je puisse les récupérer plus tard. Thnx beaucoup bro .... – Peacepun

+0

J'ai réécrit votre question afin que cela ait plus de sens. –

Répondre

2

Si j'ai bien compris, vous essayez d'enregistrer un fichier plist dans le répertoire de votre application. Voici comment lire un fichier plist intégré dans votre paquet d'applications, puis l'enregistrer dans votre répertoire documents:

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{ 
    // If your plist file is in the app bundle, and is called "file.plist": 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"plist"]; 
    NSArray *array = [[NSArray alloc] initWithContentsOfFile:path]; 

    // Do something with your array... 

    // If your plist has to be created or saved at runtime, you can't store it in the 
    // main bundle, but you can do it in the app's document directory: 
    NSString *documents = [self documentsDirectory]; 
    path = [documents stringByAppendingPathComponent:@"another_file.plist"]; 
    [array writeToFile:path atomically:YES]; 
    [array release]; 

    // ~/Library/Application Support/iPhone Simulator/User/Applications/[YOUR_APP_ID_HERE]/Documents/another_file.plist 
    NSLog(@"%@", path); 

    // You can read the file later again doing initWithContentsOfFile: again 
    // with the new file path. 

    [window makeKeyAndVisible]; 
} 

- (NSString *)documentsDirectory 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    return [paths objectAtIndex:0]; 
} 

Le fichier file.plist pourrait être quelque chose comme ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<array> 
    <string>test</string> 
    <string>wetwert</string> 
    <string>dfdfh</string> 
    <integer>345634</integer> 
</array> 
</plist> 
Questions connexes