首页 > 解决方案 > 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 服务将抛出错误。

标签: swiftobjective-cnsmutabledictionary

解决方案


推荐阅读