Why does the Objective-C compiler need to know method signatures?
问题 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 [foo someMethod] , why it is necessary for the compiler to know the signature of someMethod ? 回答1: Because of calling conventions at a minimum (with ARC, there are more reasons, but calling conventions have always been a problem). You may have been told that [foo someMethod] is converted