Является ли "лучшим стилем" отправка сообщения и надежда, что объект отвечает, или проверка того, отвечает ли он на селектор и имеет ли какой-то запасной вариант, если он этого не делает.
Например,:
- (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 ...)