私のロジックが間違っている場合は私を修正してください。ここでは、我々はobjcランタイムについてのご意見
[object doSomething];
を行うにObjCではこの
Object.doSomething(); // here we call method directly
のようなメソッドを呼び出すことができるJavaで
doSomethingのメッセージがオブジェクトに送信されます。私はすべてのオブジェクトがオブジェクトクラスを指すポインタを持っていることを知っている。オブジェクトクラスにそのようなメソッドがあるかどうかを確認するポインタをObjcランタイムで使用します。それが親クラスであるかどうかをチェックします。メソッドが見つかると、objc_msgSendが呼び出されます。
ここで私は混乱しています。
Javaのメソッド呼び出しとObjcのメッセージの違いは何ですか?
これらの利点と欠点は何ですか?
Javaメソッドの呼び出しは、実際にコンパイル時にバインドされていません。反射やその他のことはメソッド呼び出しで何が起こるかを変える可能性があるので、この答えは実際には無効です。 –