web-dev-qa-db-ja.com

NSDictionaryからオブジェクトを削除する方法

こんにちは私はキー「国」で配列を追加しているNSdictionaryを持っています。今、私はこの辞書の値を配列に入れ、配列をアルファベット順にソートします。今、この配列を辞書に追加します(つまり、新しいソートされた配列で辞書を更新し、古い配列を削除します)。 ....... これを行う方法

私のコードは次のとおりです

NSArray *countriesToLiveInArray = [NSArray arrayWithObjects:@"Iceland", @"Greenland", @"Switzerland", @"Norway", @"New Zealand", @"Greece", @"Italy", @"Ireland", nil];
NSDictionary *countriesToLiveInDict = [NSDictionary dictionaryWithObject:countriesToLiveInArray forKey:@"Countries"];


NSArray *tmpary = [countriesToLiveInDict valueForKey:@"Countries"];
NSLog(@"ary value is  %@",ary);
NSArray *sortedArray = [tmpary sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
NSLog(@"sortedArray is %@",sortedArray);

ここでは、countriesToLiveInArrayを削除し、同じキー値を持つsortedArrayに置き換えます。つまり、Countries Thanks in ..

29
V.V

最初にNSMutableDictionaryを使用して、次のコードを配置する必要があります。

[countriesToLiveInDict removeObjectForKey:@"Countries"];
[countriesToLiveInDict setObject:sortedArray forKey:@"Countries"];
67
MathieuF

まず、NSDictionaryをNSMutableDictionaryにしてから、次のコード行を記述します

[countriesToLiveInDict removeObjectForKey:@"Countries"];

これは間違いなくあなたの問題を解決します。

5

NSDictionaryは何も削除できません。次のようにNSMutableDictionaryを使用してください。

NSMutableDictionary *countriesToLiveInDict = [NSMutableDictionary dictionaryWithObject:countriesToLiveInArray forKey:@"Countries"];
1
Donald

for Swift 3 @MathieuFが答えたので、最初にNSMutableDictionaryを使用してこのコードを配置する必要があります。

countriesToLiveInDict.removeObject(forKey: "Countries")

私は同じ質問を探していたので答えを投稿し、@ MathieuFに触発されます

0
Amr Angry