重複の可能性:
NSDictionaryに追加する方法
私がそれをするとき:
NSDictionary *dic = [NSDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];
私のアプリはただクラッシュします。理由がわかりません。辞書に文字列を追加するにはどうすればよいですか?
重複の可能性:
NSDictionaryに追加する方法
私がそれをするとき:
NSDictionary *dic = [NSDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];
私のアプリはただクラッシュします。理由がわかりません。辞書に文字列を追加するにはどうすればよいですか?
辞書を変更可能にする必要があります。そうしないと、setValue:forKey:セレクターに応答しません。
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
これはココアの一般的なパターンです。クラスがペアで宣言されているのがよく見られます:NSArray/ NSMutableArray、NSSet/ NSMutableSet、NSString/NSMutableStringなど。可変バージョンは、不変バージョンが実行できるすべてのことを実行できますが、コンテンツを変更する操作もサポートします。
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];
また
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"nvjd",@"name" nil];
2つのオプションがあります。NSDictionaryキーと値のペア(または複数)で初期化するか、を作成しNSMutableDictionaryて後で追加します。
// Immutable
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"nvjd" forKey:@"name"];
// Mutable
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];