在IT技术方面,发送消息并希望对象响应是否比检查对象是否响应某个选择器并有一些备选方案更好呢?
例如:
- (NSString *)stringForObjectValue:(id)obj {
if ([obj respondsToSelector:@selector(intValue)]) {
NSString *roman = [self formatRomanNumber:[obj intValue] resultSoFar:@""];
return roman;
} else {
return [NSString stringWithFormat:@"can't format a %@", [obj class]];
}
}
比对。
- (NSString *)stringForObjectValue:(id)obj {
NSString *roman = format_roman(@"", [obj intValue]);
return roman;
}
(这个例子来自一个NSNumberFormatter子类...但它也可能来自一个NSObjectFormatter子类...)