NSDictionary setValue:

时间:2009-07-28 18:06:36

标签: objective-c debugging key-value-observing nsmutabledictionary key-value-coding

好吧,这让我疯了 - 请告诉我,我不会失去理智!

我宣布:

NSMutableDictionary* generalSettingsDict;

我的.h

我是init:

generalSettingsDict = [[NSMutableDictionary alloc] initWithCapacity:5];
在viewWillAppear

中的

我设置:

[generalSettingsDict setValue:[NSNumber numberWithBool:control.on]
                       forkey:[NSNumber numberWithInt:control.tag]];

在方法中:

-(void)settingChanged:(UISwitch*)control forEvent:(UIEvent *)event

我得到“NSMutableDictionary可能无法响应setValue:forkey:”,并且应用程序在运行时崩溃。

请帮助:(

2 个答案:

答案 0 :(得分:25)

A)forkey:应为forKey:。资本化很重要。

B)setValue:forKey:是KVC方法。它可以像你期望的那样工作,但是用于NSMutableDictionary的正确方法是setObject:forKey:

答案 1 :(得分:4)

你想要setObject:forKey:setValue:forKey:是键值编码协议的一部分。 NSMutableDictionary提供setObject:forKey: