如何从NSDictionary中删除对象

时间:2010-10-07 07:31:13

标签: ios objective-c iphone nsdictionary

您好我有一个NSdictionary我在其中添加一个包含关键“国家/地区”的数组。现在我把这个字典的值放到数组中并按照alpahbatical顺序对数组进行排序。现在我想将这个数组添加到我的字典中(我想用新的排序数组更新我的字典并从中删除旧数组)。 .......如何做到这一点

我的代码如下

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,即国家/地区 提前谢谢..

4 个答案:

答案 0 :(得分:65)

首先,您需要使用NSMutableDictionary并输入以下代码:

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

答案 1 :(得分:5)

首先使你的NSDictionary成为NSMutableDictionary&然后编写以下代码行

[countriesToLiveInDict removeObjectForKey:@"Countries"];

这肯定会解决您的问题。

答案 2 :(得分:1)

NSDictionary无法移除任何内容,请使用NSMutableDictionary,如下所示:

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

答案 3 :(得分:0)

对于Swift 3 正如@MathieuF回答的那样 首先,您需要使用NSMutableDictionary并输入以下代码:

Register-ELB2Target : Cannot bind parameter 'Target'. Cannot convert the "i-redacted" value of type "System.String" to type
"Amazon.ElasticLoadBalancingV2.Model.TargetDescription".

我发布我的答案,因为我正在寻找相同的问题并受到@MathieuF的启发