如何在NSDictionary中添加字符串?

4

可能是重复问题:
如何向NSDictionary添加元素

当我执行以下操作时:

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

我的应用程序崩溃了,我不知道原因。如何在字典中添加一个字符串?

3个回答

14
你需要使你的字典变成可变的(mutable),否则它将无法响应setValue:forKey:选择器:
NSMutableDictionary *dic = [NSMutableDictionary dictionary];

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


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

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

1

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接