4

可能重复:
如何添加到 NSDictionary

当我这样做时:

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

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

4

3 回答 3

14

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

NSMutableDictionary *dic = [NSMutableDictionary dictionary];

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

于 2012-06-26T14:48:51.543 回答
6
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];    

或者

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"nvjd",@"name" nil];
于 2012-06-26T14:49:40.893 回答
1

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

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

// Mutable
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];    
于 2012-06-26T14:51:34.160 回答