8

URL のパラメーターを結果にマップする方法はありますか?

ユーザーがIDで何かを検索できるレストサービスを手に入れました。パスはsearch/:id 、結果には名前とその他のプロパティが含まれますが、ID は含まれません。

私はこのようなことができます:

NSArray *array = mappingResult.array;
for (Item *item in array) {
        [item setId:itemID];
}

しかし、もっと良い方法があることを願っています...

ヒントを
ありがとう

4

2 に答える 2

7

応答記述子で指定したパス パターンを使用したい。RKRoute次に、マッピング中にルーティング ( ) とメタデータを使用します。メタデータには、URL パスから抽出されたパラメーターへのアクセスを提供するルーティング セクションが含まれています。

ここにメタデータに関する情報があります(ドキュメントは少し不足しています)。

あなたが使用したいマッピングで:

@metadata.routing.parameters.id

マッピング ソース キー パスとして。


ルーティングを機能させるには、オブジェクト マネージャーにルートを追加する必要があります。

[manager.router.routeSet addRoute:...

そして、 のように、ルートが使用されることを意味する方法でリクエストを行う必要がありますgetObjectsAtPathForRouteNamed:object:parameters:success:failure:

于 2013-08-20T08:57:19.670 に答える
1

おそらく、応答記述子pathPatternのandを指定する必要があります::keyPath

RKResponseDescriptor *responseDescriptor =
  [RKResponseDescriptor
   responseDescriptorWithMapping:itemMapping
   method:RKRequestMethodAny
   pathPattern:@"search/:id"
   keyPath:@"item"
   statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
于 2013-08-20T03:13:33.347 に答える