如何在NSDictionary中添加字符串?

时间:2012-06-26 14:47:59

标签: objective-c ios

  

可能重复:
  How to add to an NSDictionary

当我这样做时:

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

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

3 个答案:

答案 0 :(得分:13)

您需要制作字典mutable,否则它不会响应setValue:forKey:选择器:

NSMutableDictionary *dic = [NSMutableDictionary dictionary];

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:1)

您有两种选择。您可以使用键/值对(或多个)初始化NSDictionary,也可以创建NSMutableDictionary并稍后添加。

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

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