我有nsmutabeldictionary
这样的
{
alert = "test from dot net";
badge = 1;
sound = default;
}
并想要一个值为10的密钥'ID',就像
一样 {
alert = "test from dot net";
badge = 1;
sound = default;
ID = 10;
}
请帮助
答案 0 :(得分:1)
您只需致电setObject:forKey
将一个给定的键值对添加到字典中。
- (void)setObject:(id)anObject forKey:(id < NSCopying >)aKey
<强>参数强>
anObject
aKey的值。强烈提及 对象由字典维护。提高了 如果anObject为nil,则为NSInvalidArgumentException。如果你需要 表示字典中的nil值,使用NSNull。
aKey
关键 值。密钥被复制(使用copyWithZone:;密钥必须符合 NSCopying协议)。如果是aKey,则引发NSInvalidArgumentException 没有。如果字典中已存在aKey,则anObject接受它 的地方。
在您的示例中,您可以这样称呼它:
[yourMutableDictionary setObject:[NSNumberWithInt:10] forKey:@"ID"]
另外,请记住你必须传递一个NSObject。因此,您应该使用[NSNumberWithInt:10]
而不是10
。
答案 1 :(得分:1)
来自你的评论:
'NSUnknownKeyException',原因:'[&lt; __ NSDictionaryI 0x1ede8740&gt;的setValue:forUndefinedKey:]:
看起来你实际上有一个不可变的字典(注意我的后缀)。
我想你的代码看起来像这样:
//Even though you are assigning to a mutable object
//The method may not return an mutable dictionary
NSMutableDictionary *d = [someObject getDictionary];
您应该使用:
NSMutableDictionary *d = [NSMutableDictionary dictionaryWithDictionary:[someObject getDictionary]];
然后你可以舒服地使用:
[d setObject:@10 forKey:@"ID"];
答案 2 :(得分:0)
要使用新的Key to Dictionary添加新对象,可以使用SetObject:forKey Method。