测试密钥的存在

iPhone的键值编码是否有办法测试一个班级是否会接受一个给定的钥匙?

也就是说,如果不实现目标类的valueForUndefinedKey:或setValue:forUndefinedKey:方法,我希望能够做到这样:

if ([targetObject knowsAboutKey: key])  {
  [targetObject setValue: value forKey: key];
}

setValue:forUndefinedKey的默认实现:引发NSUndefinedKeyException。 您可以在try / catch块中包围尝试:

@try{
    [targetObject setValue:value forKey:key];
} @catch (NSException *e) {
    if ([[e name] isEqualToString:NSUndefinedKeyException]) {
     NSLog(@"oh well... handle the case where it has no key here."); // handle 
    } else { 
        [[NSException exceptionWithName:[e name] 
                                 reason:[e reason] 
                               userInfo:[e userInfo]]
         raise]; 
    } 
}
链接地址: http://www.djcxy.com/p/3197.html

上一篇: test for existence of key

下一篇: Letter O considered harmful?