title: Why does the Objective-C compiler need to know method signatures?
body: <p>Why does the Objective-C compiler need to know at compile-time the signature of the methods that will be invoked on objects when it could defer that to runtime (i.e., dynamic binding)? For example, if I write <code>[foo someMethod]</code>, why it is necessary for the compiler to know the signature of <code>someMethod</code>? </p>