我正在尝试将 NSDictionary 的内容放入 NSString 进行测试,但不知道如何实现这一点。是否可以?如果是这样,人们将如何做这样的事情?
我这样做的原因是,我是否需要在我的设备上没有运行调试器的情况下检查 NSDicitonary 的内容。因为我必须从 ios 的多任务栏中删除正在运行的应用程序,所以我可以查看我保存到字典中的值之后是否仍然可用。
我正在尝试将 NSDictionary 的内容放入 NSString 进行测试,但不知道如何实现这一点。是否可以?如果是这样,人们将如何做这样的事情?
我这样做的原因是,我是否需要在我的设备上没有运行调试器的情况下检查 NSDicitonary 的内容。因为我必须从 ios 的多任务栏中删除正在运行的应用程序,所以我可以查看我保存到字典中的值之后是否仍然可用。
您可以调用 [aDictionary description],或者在任何需要格式字符串的地方调用,只需使用 %@ 来代替字典:
[NSString stringWithFormat:@"my dictionary is %@", aDictionary];
或者
NSLog(@"My dictionary is %@", aDictionary);
以上解决方案只会将字典转换为字符串,但您不能将该字符串转换回字典。为此,这是更好的方法。
转换为字符串
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];
}
您可以使用fromdescription
继承的方法,也可以编写自定义的方法来格式化您喜欢的格式。NSDictionary
NSObject
NSDictionary
如果你喜欢使用URLRequest httpBody
extension Dictionary {
func toString() -> String? {
return (self.compactMap({ (key, value) -> String in
return "\(key)=\(value)"
}) as Array).joined(separator: "&")
}
}
// 打印:Fields=sdad&ServiceId=1222