添加对象后,NSMutableDictionary 对象的数据类型发生了变化

问题描述

创建了一个需要在 Web 服务中作为请求参数传递的 NSMutableDictionary 对象。取字符串类型的所有键和值。

-(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 服务假设双引号 ("") 内的键和值是字符串类型。如果任何键和值没有双引号 (""),则 Web 服务会抛出错误

  • 我的问题是为什么所有的键和值都没有双引号("")?一切都应该是一样的。
    注意 - 如果我们使用 isKindOfClass: 检查键和值将返回字符串类型。 swift 中的输出也相同。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)