iPhone键值编码——测试是否存在键值
iPhone键值编码是否有办法测试类是否接受给定的键 也就是说,在不实现目标类的valueForUndefinedKey:或setValue:forUndefinedKey:方法的情况下,我希望能够执行以下操作:iPhone键值编码——测试是否存在键值,iphone,key-value-coding,Iphone,Key Value Coding,iPhone键值编码是否有办法测试类是否接受给定的键 也就是说,在不实现目标类的valueForUndefinedKey:或setValue:forUndefinedKey:方法的情况下,我希望能够执行以下操作: if ([targetObject knowsAboutKey: key]) { [targetObject setValue: value forKey: key]; } setValue:forUndefinedKey:的默认实现引发NSUndefinedKeyExcept
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];
}
}
实际上,NSUndefinedKeyException不是一个类,而是一个字符串。因此,为了做正确的事情,我使用了
@catch(NSException*e){if([[e name]isEqualToString:NSUndefinedKeyException]){;//handle}else{[[NSException exception withname:[e name]reason:[e reason]userInfo:[e userInfo]]raise}
知道如何在Swift中捕获此异常吗??