将NSDictionary转换为NSString

我试图把一个NSDictionary的内容放入一个NSString进行testing,但不知道如何实现这一点。 可能吗? 如果是这样的话,会怎么做呢?

我这样做的原因,我需要检查NSDicitonary的内容没有运行在我的设备上的debugging器。 因为我不得不从ios的多任务栏中删除正在运行的应用程序,所以我可以看到,我保存到字典中的值是否仍然可用。

你可以调用[aDictionary描述],或者任何需要格式化string的地方,只需使用%@代替字典即可:

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

要么

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

以上解决scheme将只将字典转换为string,但不能将该string转换为字典。 为此,这是更好的方法。

转换为string

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

转换回字典

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

你可以使用NSObjectNSDictionaryinheritance的description方法,或者编写一个自定义的方法来根据你的喜好来设置NSDictionary格式。