将NSDictionary转换为NSString

C.J*_*hns 57 iphone nsdictionary nsstring ios

我试图将NSDictionary的内容放入NSString进行测试,但不知道如何实现这一点.可能吗?如果是这样,怎么会做这样的事情?

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

小智 126

你可以调用[aDictionary description],或者你需要格式字符串的任何地方,只需使用%@代替字典:

[NSString stringWithFormat:@"my dictionary is %@", aDictionary];
Run Code Online (Sandbox Code Playgroud)

要么

NSLog(@"My dictionary is %@", aDictionary);
Run Code Online (Sandbox Code Playgroud)


Dan*_*ain 73

Above Solutions只会将字典转换为字符串,但您无法将该字符串转换回字典.为此,这是更好的方式.

转换为String

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

转换回字典

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


das*_*ght 12

您可以使用from description继承的方法,也可以编写符合您喜好的自定义方法.NSDictionaryNSObjectNSDictionary