2013-08-19 3 views
7

URLのパラメータを結果にマップする方法はありますか?RESTKitを使用してURLパラメータをオブジェクトにマップする

私はユーザーがIDで何かを検索できる休憩サービスを手に入れました。パスはsearch/:id です。結果には名前とその他のプロパティが含まれていますが、IDは含まれていません。あなたはおそらく指定する必要が
Xean

答えて

7

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

メタデータに関する情報がhere(少し不足しています)。

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

@metadata.routing.parameters.id 

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

[manager.router.routeSet addRoute:... 

そしてあなたはgetObjectsAtPathForRouteNamed:object:parameters:success:failure:のように、ルートが使用されている意味な方法でリクエストを行う必要があります。あなたがオブジェクトマネージャにルートを追加する必要がある作業をルーティングするようにするに


+0

これは正しい方法です。私の問題は '@ metadata.routing'が存在しないことです。 – Obenland

+0

あなたは 'RKRoute'を使用していますか?より多くの助けを得るためにあなたのマッピング、レスポンスデスクリプタ、ルート設定を表示する必要があります。 – Wain

+0

私のルートは '[RKRoute routeWithClass:[Item class] pathPattern:@" search /:id "メソッド:RKRequestMethodGET]'です。 ResponseDescriptorは@ micha-mazaheriが書いたのと同じです。 @Wainからのマッピングを 'addAttributeMappingsFromDictionary:' – Obenland

1

任意のヒントについて

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

が、私はよりよい方法がある願っています...

ありがとう:

私はこのような何かを行うことができますpathPatternkeyPath応答記述子 ::

RKResponseDescriptor *responseDescriptor = 
    [RKResponseDescriptor 
    responseDescriptorWithMapping:itemMapping 
    method:RKRequestMethodAny 
    pathPattern:@"search/:id" 
    keyPath:@"item" 
    statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 
関連する問題