webentwicklung-frage-antwort-db.com.de

Konvertieren Sie NSDictionary in NSString

Ich versuche, den Inhalt eines NSDictionary zum Testen in einen NSString zu packen, habe aber keine Ahnung, wie dies erreicht werden soll. Ist es möglich? Wenn ja, wie würde man so etwas tun?

Der Grund, warum ich das tue, ist, dass ich den Inhalt eines NSDicitonary überprüfen muss, ohne dass der Debugger auf meinem Gerät ausgeführt wird. da ich die laufende app aus der multitasking-leiste des ios löschen muss, kann ich sehen, ob die werte, die ich im wörterbuch speichere, danach noch verfügbar sind.

56
C.Johns

Sie können [aDictionary description] aufrufen oder überall dort, wo Sie eine Formatzeichenfolge benötigen, einfach% @ verwenden, um für das Wörterbuch zu stehen:

[NSString stringWithFormat:@"my dictionary is %@", aDictionary];

oder

NSLog(@"My dictionary is %@", aDictionary);
124
Jay Wardell

Die obigen Lösungen konvertieren nur das Wörterbuch in eine Zeichenfolge, aber Sie können diese Zeichenfolge nicht in ein Wörterbuch zurückkonvertieren. Dafür ist es der bessere Weg.

In String konvertieren

NSError * err;
NSData * jsonData = [NSJSONSerialization  dataWithJSONObject:yourDictionary options:0 error:&err];
NSString * myString = [[NSString alloc] initWithData:jsonData   encoding:NSUTF8StringEncoding];
NSLog(@"%@",myString);

Zurück zum Wörterbuch konvertieren

NSError * err;
NSData *data =[myString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary * response;
if(data!=nil){
 response = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];
}
72
Danial Hussain

Sie können die description -Methode verwenden, die von NSDictionary von NSObject geerbt wurde, oder eine benutzerdefinierte Methode schreiben, die NSDictionary nach Ihren Wünschen formatiert.

12
dasblinkenlight