1

カスタム イベント ハンドラーを実装する必要があります。たとえば、次のような URI を処理する必要があります。追加のオプションを設定します。たとえば、これは、特定の日付にカレンダーを表示するためにフォーカスする必要があるカレンダー ビューである可能性があります。

私は既存の REST フレームワークを探してきましたが、これまでのところ、既存のフレームワークで URI のフォーマットを定義し、それらをローカル クラスやアクションなどにマップする方法がわかりませんでした。

どうすれば、1) REST のような URI を定義して解釈し、2) 車輪を再発明することなく (RESTKit から継承するなど)、それらをローカル アクションまたはオブジェクトにマップできますか? それとも、自分のパーサーを作成する必要がありますか? その場合、URI lex/flex のような優れた REST へのポインタを歓迎します。

4

1 に答える 1

0

私が探していたのは、Rubyの世界ではURLルーターと呼ばれています。Objective Cにも、多かれ少なかれ有用なものがいくつかあります。

最終的にカスタムURLルーターを作成しました。これは、ルビーURLルーターを基本的に2つのコンポーネント(ルーターとルート)に分割したようなものです。ルーターの部分(いわばマッパーとURLディスパッチャー)については、Three20の一部であるTTURLMapを調べましたが、コードの90%を破棄し、ニーズに合わせてアクション処理を変更しました。たくさんの定型的なコードがありますが、基本的にはルーターのアイデアを得るのに必要なものでした。

特定のルート処理には、SOCKitを使用します。これは、優れているようで、コードが十分にテストされています。

これで、たとえば、URLとして渡されたいくつかの値を表示するために2つのパラメーターを受け取るローカル関数helloを作成できます。

Roter *router = [[Router alloc] init];
[router map:@"soc://:ident/:saySomething" toInstance:self with:@selector(hello:sayWhat:)];
[router dispatch:@"soc://3/hi"];

ブロックも追加しますが、SOCKitが基本的なパラメータータイプの実際の値を渡すため、ほとんどの場合、セレクターは適切に機能します(URLの値を使用して辞書を解析する必要はありません)。

于 2012-10-02T16:32:25.710 に答える