动态设置Key的密钥

我有一个名为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)我不知道该怎么放在那里,使错误消失。

感谢您的回应。


你已经定义了valueForUndefinedKey:它是处理返回值的东西。 但是在你的代码片段中,它看起来像你正试图为未定义的键设置一个值。 在这种情况下,使用的方法是:

setValue:forUndefinedKey:

一个例子,基于它看起来像你正在做的事情:

- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
    NSLog(@"Attempting to set value: %@ for key: %@", value, key);
}
链接地址: http://www.djcxy.com/p/19233.html

上一篇: dynamically set the key for Key

下一篇: iOS Tests/Specs TDD/BDD and Integration & Acceptance Testing