私は最近、スウィズルを行う必要があるプロジェクトを開始しました。
多くのチュートリアルを経た後、「実装と関数ポインターの違いは何ですか?」という質問がありました。
私は最近、スウィズルを行う必要があるプロジェクトを開始しました。
多くのチュートリアルを経た後、「実装と関数ポインターの違いは何ですか?」という質問がありました。
メモリから見ると、IMP は関数ポインタのようなメモリ アドレスであり、通常の C 関数のように呼び出すことができます。ただし、objective-C メッセージング規則を使用することが保証されています。
_cmd
呼び出される (SELECTOR) です。これは、元の実装をプロキシでラップできる ObjC メッセージ転送などの動的機能をサポートするためだと思います。たとえば、トランザクションを開始したり、セキュリティ チェックを実行したり、Cocoa 固有の例では、いくつかのプロパティ監視クラフトを追加したりできます。 、実行時に魔法で。関数の署名は既にありますが、場合によっては、「どうやってここにたどり着いたのか」を知るのに役立ちます。メッセージ署名付き。