2011-02-03 13 views
0

私が書いているiOSアプリケーションでプラグインシステムをサポートするには、シンプルで軽量なアプローチが必要です。何もない。これはユーザーに公開されるのではなく、ユーザーが選択できるコードの約100小(約50行のコード)モジュールの開発のための生産性の助けとなります。Obj-C/CocoaTouchにプラグインを実装する方法

私は現在、plist/NSDictionaryのアプローチにNSDictionaryのカテゴリを使用して追加の機能を提供しています。 plistは、対応するプラグインが通信する機能に固有の設定の辞書です。ここで、プラグイン名をターゲット/アクションのペアとして追加する必要があります。これは私が最良のアプローチについて少し不明であるところです。このターゲット/アクションのペアを指定する方法は?明らかに私は100のサブクラスを望んでいません。おそらくプロトコル/デリゲートデザインですか?

おかげで、 ダグ

答えて

1

呼び出しと操作はあなたの友達です。ロジックデータが渡されるカスタム操作を行う場合、呼び出しを使用するか、モジュールを直接呼び出すことができます。この方法では、多数の操作をキューに追加できます。

+0

さらに詳しい状況。これらの100の方法の変形は、ジェスチャ認識装置の動作である。ジェスチャハンドラ内のジェスチャ+ロジックをタップ/パン/回転します。私は何とか私のplist内でこれを指定したい。これは確かにデリゲートが行く道だと感じていますか?しかし、私はそれを私のplistの要素としてどのようにパッケージ化するのですか? – dugla

+0

ハングオン、NSSelectorFromStringが検出されました。それは正しいことを感じる。私は単にセレクタの文字列名を追加します。完了しましたか? – dugla

+0

はい、それはあなたがファイルにセレクタ名を格納するのとほぼ同じです。私はあなたにこのような何かをすることが役に立つと思うかもしれませんが、もう一度言います:[aInvocation setSelector:NSSelectorFromString(userSelectedString)]; [aInvocation invokeWithTarget:currentTarget]; – Rich

関連する問題