0

我有一个名为 mycallback 的类:

[mycallback setValue:[code objectForKey:@"abc"] forKey:@"abc"];

我的很多控制器都调用它。问题是我从 mysql 数据库中提取数据并将其发送到 mycallback。所以我可能不知道关键是什么。除此之外,我不想在 mycallback 类中声明实例变量,因为我希望它分开。

不幸的是,如果代码在上面运行,我会收到以下消息:

exception 'NSUnknownKeyException', reason: '[<CallbackClass 0x7b6c5d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key fence.'

所以我想动态设置键而不是在 mycallback 中。所以我为 NSDictionary 创建了一个类别并添加了 valueForUndefinedKey 方法:

- (id)valueForUndefinedKey:(NSString *)key
{
    NSLog(@"This key not being called %@", key);
    return nil;
}

但是 1) valueForUndefinedKey 没有被调用,并且 2) 我不确定要放什么来使错误消失。

感谢您的回复。

4

1 回答 1

0

您已经定义valueForUndefinedKey:了处理返回值的内容。但是在您的代码片段中,您似乎正在尝试为未定义的键设置值。在这种情况下,使用的方法是:

setValue:forUndefinedKey:

一个示例,基于您正在尝试执行的操作:

- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
    NSLog(@"Attempting to set value: %@ for key: %@", value, key);
}
于 2012-05-23T15:10:00.643 回答