2010-10-13 7 views
18

Je suis l'implémentation d'une application basée sur des services Web. Dans ce que j'ai besoin d'ajouter une chaîne en tant que propriété dans .plist et j'ai besoin d'obtenir la valeur de la .plist chaque fois que j'ai besoin dans le code. Pouvez-vous m'aider s'il vous plaît?comment ajouter et obtenir les valeurs de .plist dans iphone sdk

+0

duplication possible de [obtenir des données de plist à NSMutableArray et écrire le NSMutableArray au même iPhone plist] (http://stackoverflow.com/questions/9193363/get-data-from-plist-à-nsmutablearray-and-writing-the-nsmutablearray-to-same) – Monolo

+0

Voir [ce lien] (http://www.iphoneexamples.com/) .Ce sera très utile pour toi. Bonne chance. – Warrior

Répondre

29

Voici un exemple de code:

NSString *path = [[NSBundle mainBundle] pathForResource: @"YourPLIST" ofType: @"plist"]; 
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile: path]; 
id obj = [dict objectForKey: @"YourKey"]; 
+1

Salut j'ai eu le chemin nul pouvez-vous s'il vous plaît m'aider – sekhar

+0

Votre fichier plist doit être ajouté au projet, alors vous devez définir son nom exact (y compris le cas) dans le code ci-dessus. – jv42

+0

qu'en est-il des plistes avec plusieurs niveaux, comme ça? http://i.imgur.com/bWNM3Va.png –

15
NSBundle* mainBundle = [NSBundle mainBundle];  

// Reads the value of the custom key I added to the Info.plist 
NSString *value = [mainBundle objectForInfoDictionaryKey:@"key"]; 

//Log the value 
NSLog(@"Value = %@", value); 

// Get the value for the "Bundle version" from the Info.plist 
[mainBundle objectForInfoDictionaryKey:@"CFBundleVersion"]; 

// Get the bundle identifier 
[mainBundle bundleIdentifier]; 
5
NSURL *url = [[NSBundle mainBundle] URLForResource:@"YOURPLIST" withExtension:@"plist"]; 
NSArray *playDictionariesArray = [[NSArray alloc ] initWithContentsOfURL:url]; 

NSLog(@"Here is the Dict %@",playDictionariesArray); 

ou vous pouvez utiliser suivant également

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Sample.plist"]; 
2

Obtenir de plist est très simple.

NSString *path = [[NSBundle mainBundle] pathForResource:@"SaveTags" ofType:@"plist"]; 
if (path) { 
    NSDictionary *root = [NSDictionary dictionaryWithContentsOfFile:path]; 
} 

Si vous voulez ajouter quelque chose à un plist, peut-être vous pouvez trouver la réponse ici: How to write data in plist?

Mais si vous voulez seulement économiser message vous app, NSUserDefaults est la meilleure façon.

0

Vous ne pouvez pas faire cela. Tout bundle, que ce soit iOS ou Mac OS, est en lecture seule, vous ne pouvez y lire que et vous ne pouvez pas créer de fichiers, écrire ou faire quoi que ce soit avec les fichiers dans un paquet. Cela fait partie des fonctionnalités de sécurité de la pomme. Vous pouvez utiliser le NSDocumentsDirectory pour écrire et lire vos trucs dont vous avez besoin pour votre application

Questions connexes