2012-04-12 16 views
48

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

Der Grund, warum ich das tue, muss ich den Inhalt eines NSDictionary überprüfen, 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 gespeichert habe, danach noch verfügbar sind.

+0

ähnliche Frage: http://stackoverflow.com/questions/3424439/view-contents-of-nsmutabledictionary –

Antwort

118

können Sie rufen [aDictionary Beschreibung] oder irgendwo würden Sie eine Format-String benötigen, nur% @ verwenden für das Wörterbuch stehen in:

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

oder

NSLog(@"My dictionary is %@", aDictionary); 
+0

ahh .. cool, ja, ich weiß, wie man es anmeldet, aber ich wusste nicht, dass man das tun könnte, um es in einen String zu bekommen .. cool, –

+0

schlecht markiere deine Antwort, wenn ich auch erlaubt bin :) –

+0

Wie bekomme ich vale von NSData, die im JSON-Format sind. –

12

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

+0

Beschreibung Methode bietet einige zusätzliche Informationen abgesehen von den tatsächlichen Wörterbuchdaten. – Adeel

51

Above Solutions konvertiert nur das Wörterbuch in eine Zeichenfolge, aber Sie können diese Zeichenfolge nicht zurück in ein Wörterbuch konvertieren. Dafür ist es der bessere Weg.

Convert to String

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

Konvertieren Zurück zu Wörterbuch

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

Es funktionierte für einzelnes Wörterbuch. Was ist bei mehreren Wörterbüchern? Ich kann nicht zurück in das Wörterbuch konvertieren. –

+1

Es funktioniert nicht, wenn Wörterbuch Arrays als Werte hat –

+0

@VineetAshtekar siehe den Titel dieser Frage. Problem ist die Konvertierung von NSDictionary in NSString. –

Verwandte Themen