J'essaie de mettre le contenu d'un NSDictionary dans une chaîne NSString à des fins de test, mais je ne sais pas du tout comment y parvenir. C'est possible? si oui, comment ferait-on une telle chose?
La raison pour laquelle je le fais est-il nécessaire de vérifier le contenu d'un NSDicitonary sans que le débogueur ne s'exécute sur mon appareil? comme je dois supprimer l'application en cours d'exécution de la barre multitâche de l'ios pour que je puisse voir si les valeurs que je sauvegarde dans le dictionnaire sont toujours disponibles par la suite.
Vous pouvez appeler [description du dictionnaire], ou n'importe où vous avez besoin d'une chaîne de format, utilisez simplement% @ pour remplacer le dictionnaire:
[NSString stringWithFormat:@"my dictionary is %@", aDictionary];
ou
NSLog(@"My dictionary is %@", aDictionary);
Above Solutions convertira uniquement le dictionnaire en chaîne, mais vous ne pouvez pas reconvertir cette chaîne en dictionnaire. Pour cela c'est la meilleure façon.
Convertir en chaîne
NSError * err;
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:yourDictionary options:0 error:&err];
NSString * myString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"%@",myString);
Convertir au dictionnaire
NSError * err;
NSData *data =[myString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary * response;
if(data!=nil){
response = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];
}
Vous pouvez utiliser la méthode description
héritée par NSDictionary
de NSObject
, ou écrire une méthode personnalisée formatant NSDictionary
à votre guise.