I haven't looked at Chapter 9; I've only looked at the quiz, but I think there are a few misleading questions in this quiz.

1. People might think that methods with the same name *have* to have the same arguments and return types. They don't although the compiler does need to know at compile time which of the methods to call. For example, you might have a number of classes derived from, say, GraphicObject that support a draw method and another set of drawing classes derived from TextObject, that support a draw method returning a different return type or different arguments and that would be perfectly legal. (You wouldn't want to do that, but that's beside the point.)

2. respondsToSelector returning YES doesn't necessarily mean the method is implemented in the class. It could be handled by the forwarding mechanism.

For #1, the question refers to dynamic typing, where the the class of the receiver is not known until runtime.

I did realise that. I was just concerned that because of the way it was worded, people might come away thinking that all methods with the same name must have the same return type and arguments. Typically you would send messages to an object of some type from which other objects are derived, like a GraphicsObject class, and in that case the compiler would be able to distinguish a draw method in that class from another one. That's obviously still a case where the receiver is not known until runtime.