NSDictionary "item"の配列(dataArray)があります。 5人の学生のキー「名前」に「david」、キー「マーク」に「85」などのデータがあります。配列インデックス値に関してdavidのマークを90に置き換えたい(つまり、davidと85を含む辞書の場合は0)。どうすればいいですか?
配列内のコンテンツのコードは
[item setobject:name forkey:@"Name"];
[item setobject:mark forkey:@"Marks"];
[dataArray addOject:item]
上記のコードは構文解析の内部にあるため、5つのオブジェクト(生徒)とその名前とマークの配列があり、dataArrayの最初のオブジェクトのマークを置き換えたいと思います。
できることは次のとおりです。
NSMutableDictionary *newDict = [[NSMutableDictionary alloc] init];
NSDictionary *oldDict = (NSDictionary *)[dataArray objectAtIndex:0];
[newDict addEntriesFromDictionary:oldDict];
[newDict setObject:@"Don" forKey:@"Name"];
[dataArray replaceObjectAtIndex:0 withObject:newDict];
[newDict release];
お役に立てれば!
最初にNSMutableDictionaryが必要で、キーと値を変更できます。
次のようになります。
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"david", @"name", "85", @"marks", nil];
[dict setObject:@"90" forKey:@"david"];
// NSDictionary *dict = ...
NSMutableDictionary *mutableDict = [dict mutableCopy];
[mutableDict setObject:@"myObject" forKey:@"myKey"];
dict = [mutableDict mutableCopy];
私はそれが役立つことを願っています
NSDictionaryのオブジェクトを更新する場合は、代わりにNSMutableDictionaryを使用する必要があります。 NSMutableDictionaryには次のEXTRAメソッドがあります
エントリーを追加する
エントリの削除
[davidsRecord setObject:@"100" forkey:@"mark"];