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

时间:2021-06-30 10:57:54

标签: swift objective-c 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 中的输出也相同。

0 个答案:

没有答案
相关问题