3

Mac OS X 用の Cocoa アプリケーションを開発しました。いくつかのカスタム プラグイン (インターフェイスも含む) を作成し、アプリに動的にロードしたいと考えています。私のアプリは、フォルダー内を調べてすべてのファイル (プラグイン) を取得し、それらをユーザー インターフェイスで使用できるようにする必要があります。

誰かが私に出発点を提案できますか?

それらを動的にロードするにはどうすればよいですか?プラグインは動的ライブラリまたは sth でなければなりませんか?

ありがとう。

4

1 に答える 1

4

を見てみたいと思いますNSBundle。ローダブル バンドル (フレームワークはローダブル バンドルです) プロジェクトは、必要なものを生成します。principleClassバンドルのプロパティをプラグインの最上位クラスに設定すると、ロードされたバンドルからクラスのインスタンスを取得できます。特定のパスでバンドルをロードするには、次のようにします。

id bundle = [NSBundle bundleWithPath:pathToBundle];
NSError *err;
if(![bundle loadAndReturnError:&err]) {
  // err contains error info
} else {
  // bundle loaded properly
  Class pluginClass = [bundle principleClass];
  // instantiate pluginClass and off you go...
}
于 2011-03-28T16:15:41.560 に答える