有沒有辦法將URL中的參數映射到結果?使用RESTKit將URL參數映射到對象
我得到了一個休息服務,用戶可以通過其ID來搜索某些東西。路徑爲search/:id
結果包含名稱和其他屬性,但不包含ID。
我可以做這樣的事情:
NSArray *array = mappingResult.array;
for (Item *item in array) {
[item setId:itemID];
}
,但我希望有一個更好的方式...
感謝任何提示
Xean
有沒有辦法將URL中的參數映射到結果?使用RESTKit將URL參數映射到對象
我得到了一個休息服務,用戶可以通過其ID來搜索某些東西。路徑爲search/:id
結果包含名稱和其他屬性,但不包含ID。
我可以做這樣的事情:
NSArray *array = mappingResult.array;
for (Item *item in array) {
[item setId:itemID];
}
,但我希望有一個更好的方式...
感謝任何提示
Xean
您希望使用您在響應描述符中指定的路徑模式。然後,您想在映射期間使用路由(RKRoute
)和元數據。元數據包括一個路由部分,可以訪問從URL路徑中提取的參數。
有關元數據的一些信息here(文檔有點缺乏)。
在你的映射要使用:
@metadata.routing.parameters.id
作爲映射源的關鍵路徑。
爲了讓你需要的路線添加到您的對象管理路由的工作:
[manager.router.routeSet addRoute:...
然後你需要做的,這意味着該路由的方式請求時,像getObjectsAtPathForRouteNamed:object:parameters:success:failure:
。
你可能需要指定pathPattern
和keyPath
您的響應描述符 ::
RKResponseDescriptor *responseDescriptor =
[RKResponseDescriptor
responseDescriptorWithMapping:itemMapping
method:RKRequestMethodAny
pathPattern:@"search/:id"
keyPath:@"item"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
這是正確的方法。我的問題是'@ metadata.routing' dosn't不存在。 – Obenland
你使用的是RKRoute嗎?您需要顯示您的映射,響應描述符和路線配置以獲得更多幫助... – Wain
我的路線是[[RKRoute routeWithClass:[Item class] pathPattern:@「search /:id」method:RKRequestMethodGET];'。 ResponseDescriptor和@ micha-mazaheri寫的一樣。我用@ addAttributeMappingsFromDictionary添加了@Wain的映射:' – Obenland