swift - NSMutableDictionary 对象的数据类型在添加对象后发生变化
问题描述
创建了一个NSMutableDictionary
需要在 Web 服务中作为请求参数传递的对象。获取字符串类型的所有键和值。
-(void)createPayload {
NSMutableDictionary *payload = [[NSMutableDictionary alloc]init];
[payload setObject:@"T1" forKey:@"table_no"];
[payload setObject:@"18.05" forKey:@"total_amount"];
[payload setObject:@"3759121" forKey:@"order_id"];
[payload setObject:@"INR" forKey:@"currency_code"];
[payload setObject:@"VISA" forKey:@"paymentType"];
[payload setObject:@"54ds5sds6fhhh56" forKey:@"resturent_id"];
[payload setObject:@"ios" forKey:@"mode"];
NSMutableDictionary *paramDict = [[NSMutableDictionary alloc]init];
[paramDict setObject:payload forKey:@"payload"];
NSLog(@"Parameter dictionary:\n%@",paramDict);
//[self checkDataTypeOfDisctionaryObjects:payload];
}
实际输出 -
{
payload = {
"currency_code" = INR;
mode = ios;
"order_id" = 3759121;
paymentType = VISA;
"resturent_id" = 54ds5sds6fhhh56;
"table_no" = T1;
"total_amount" = "18.05";
};
}
预期产出 -
{
"payload" = {
"currency_code" = "INR";
"mode" = "ios";
"order_id" = "3759121";
"paymentType" = "VISA";
"resturent_id" = "54ds5sds6fhhh56";
"table_no" = "T1";
"total_amount" = "18.05";
};
}
但是在打印日志或发送到 Web 服务时,只有少数键和值显示剩余的字符串类型已更改为其他类型。我的网络服务假设双引号(“”)内的键和值是字符串类型。如果任何键和值没有双引号(“”),Web 服务将抛出错误。
- 我的问题是为什么所有的键和值都没有双引号(“”)?一切都应该一样。
注意 -如果我们检查键和值使用isKindOfClass:
将返回字符串类型。swift中的输出也相同。
解决方案
推荐阅读
- php - php动态获取网页中特定单词的计数
- mongodb - java mongo驱动中mongo shell UUID()的等价物
- selenium - 如何使用java lang在selenium中找到具有href作为java脚本函数的链接
- javascript - 序列化表单数据并将它们添加到 jquery $.post
- jquery - Adding a column that is a result of two other columns in jqgrid?
- c# - 如何通过数据范围加载水晶报表
- c++ - 必须“询问对象的确切类型”是否总是表明设计不佳?
- c++ - dyld:惰性符号绑定失败
- localhost - 本地主机和 IIS 错误
- javascript - 为什么我的按钮在附加时重复?