同時にロードされるプラグインをサポートする Mac OS X 用のアプリケーションがあります。これらのプラグインの一部は Cocoa フレームワークの上に構築されており、あるプラグインでは更新を受け取り、別のプラグインでは受け取らない場合があります。Objective-C の現在の関数ディスパッチ方法では、任意のプラグインから特定の Objective-C ルーチンへの呼び出しは、毎回同じルーチンに送られます。つまり、プラグイン A は簡単な Objective-C 呼び出しでプラグイン B内にあることを確認できます。明らかに、私たちが探しているのは、各プラグインが、それが構築されたフレームワークの独自のバージョンと対話することです。私 はObjective-Cとこの特定の必要性についていくつか 読んでい ますが、まだ決定的な解決策を見つけていません.
更新: 上記の「フレームワーク」という言葉の使用は誤解を招くものです。フレームワークは静的にリンクされたライブラリであり、それを必要とするプラグインに組み込まれています。ただし、Objective-C がディスパッチを処理する方法では、これらの静的にリンクされた異種コードの断片でさえ、Objective-C ディスパッチャ内で混ざり合い、意図しない結果につながります。
更新 2:証明されていない仮説ほど解決策を提案していないように見えるため、ここで提供される回答についてはまだ少しあいまいです。