1
2つのオブジェクトの間に「メッセージを渡す」のが好きですか?もしそれらが別のスレッドでインスタンス化された場合、呼び出されたメソッドはオブジェクトのスレッドで実行されますか?Objective-Cのメソッド呼び出しがメッセージ渡しと呼ばれているのはなぜですか?
2つのオブジェクトの間に「メッセージを渡す」のが好きですか?もしそれらが別のスレッドでインスタンス化された場合、呼び出されたメソッドはオブジェクトのスレッドで実行されますか?Objective-Cのメソッド呼び出しがメッセージ渡しと呼ばれているのはなぜですか?
メソッドの呼び出しはコンパイル時に解決され、メソッドは実行時に存在すると見なすことができます。メッセージの受け渡しは実行時に解決され、受信側オブジェクトはメッセージの処理方法を理解する必要はありません。
Objective-Cの「メッセージ受け渡し」という用語は、スレッド化とは関係ありません。
私はここで、このトピックについての良い記事を見つけた:http://iskren.info/reading/info/ObjC/reading/dynamite.html
は、私がvirtual' 'としてメソッドをマークした場合、そのを呼び出すことは技術的にあるC++で、その平均値をい「というメッセージパッシング」?これは、Javaでのすべてのメソッド呼び出しも 'メッセージパッシング'であることを意味します。 – AppleGrew
いいえ、 'late'バインディングを使って' virtual'メソッド(C++とJavaの両方)が呼び出されると、コンパイラとランタイムは実際に呼び出しのもう一方のメソッドを保証します。 Objective-Cでは、任意のメッセージを任意のオブジェクトに渡すことができ、オブジェクトはそれを処理するかどうかを指定します。 –
記事リンクありがとうございます。 – AppleGrew