重複の可能性:
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"];