【问题标题】:How to add a string in a NSDictionary? [duplicate]如何在 NSDictionary 中添加字符串? [复制]
【发布时间】:2012-06-26 14:47:59
【问题描述】:

可能重复:
How to add to an NSDictionary

当我这样做时:

NSDictionary *dic = [NSDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];

我的应用程序崩溃了。我不明白为什么。我应该如何在字典中添加字符串?

【问题讨论】:

    标签: objective-c ios


    【解决方案1】:

    您需要将您的字典设为mutable,否则它不会响应setValue:forKey: 选择器:

    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
    

    这是 cocoa 中的常见模式:您经常看到成对声明的类:NSArray/NSMutableArrayNSSet/NSMutableSetNSString/NSMutableString,等等。可变版本能够做不可变版本可以做的所有事情,但它也支持更改其内容的操作。

    【讨论】:

      【解决方案2】:
      NSMutableDictionary *dic = [NSMutableDictionary dictionary];
      [dic setValue:@"nvjd" forKey:@"name"];    
      

      NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"nvjd",@"name" nil];
      

      【讨论】:

        【解决方案3】:

        你有两个选择。要么使用键/值对(或多个)初始化 NSDictionary,要么创建 NSMutableDictionary 并稍后添加。

        // Immutable
        NSDictionary *dic = [NSDictionary dictionaryWithObject:@"nvjd" forKey:@"name"];
        
        // Mutable
        NSMutableDictionary *dic = [NSMutableDictionary dictionary];
        [dic setValue:@"nvjd" forKey:@"name"];    
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-30
          • 1970-01-01
          • 2021-11-01
          • 2016-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-21
          相关资源
          最近更新 更多