【问题标题】:Dictionary giving improper value字典给出不正确的值
【发布时间】:2013-06-06 06:59:45
【问题描述】:

这是我的代码

for(id tempLangItem in jp.staffData)
        {
 NSMutableDictionary *temp=[[NSMutableDictionary alloc] initWithDictionary:tempLangItem];
            NSString *name = [temp objectForKey:@"lang_name"];
            NSLog(@"item_name =%@",name);
            NSLog(@"value in dictionary=%@",temp);



}  

这些是日志详细信息

item_name =marinieres

 value_in_dictionary={
    "lang_id" = 2;
    "lang_name" = "\U7a46\U840a\U65afmarinieres";
    time = "2013-06-05 05:14:50";
}

为什么它在value_in_dictionary 日志中给出lang_name=\U7a46\U840a\U65afmarinieres 而它在item_name 日志中显示正确。

【问题讨论】:

  • 你的temp-dictionary 初始化的tempLangItem-dictionary 是什么?你能把它包含在你的代码中吗?
  • @7SLEVIN 现在检查我的代码,我做了一些改进。
  • @7SLEVIN jp.staff 数据是 NSdictionary 的 NSArray。
  • 将字符串转换为正确的格式,因为这些是正在显示的 UTF 字符

标签: ios ios5 nsstring nsdictionary


【解决方案1】:

试过

NSMutableDictionary *temp=[[NSMutableDictionary alloc]init];
[temp setObject:@"marinieres" forKey:@"lang_name"];

NSString *name = [temp objectForKey:@"lang_name"];
NSLog(@"item_name =%@",name);
NSLog(@"value in dictionary=%@",temp);

以及我的日志显示的内容

2013-06-06 12:38:02.337 Cool[96423:11303] item_name =marinieres
2013-06-06 12:38:04.022 Cool[96423:11303] value in dictionary={
    "lang_name" = marinieres;
}

1 小问题:如果它是 NSDictionary,为什么要创建一个新实例?

 NSMutableDictionary *temp=[[NSMutableDictionary alloc] initWithDictionary:tempLangItem];

试试tempLangItem

【讨论】:

  • 它可以是来自 Jp 的任何东西。 staffData,NSDictionary 的 NSArray。
  • 为什么要创建实例?使用字典本身
  • 如何更改 NSdictionary 的任何键的值?
  • [temp setObject:@"marinieres" forKey:@"lang_name"];
  • setObject 方法适用于 NSMutableDictionary 不适用于 NSDictionary。
猜你喜欢
  • 2022-01-19
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
相关资源
最近更新 更多