将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]; }
你可以使用NSObject
的NSDictionary
inheritance的description
方法,或者编写一个自定义的方法来根据你的喜好来设置NSDictionary
格式。