如何将核心数据类路由到 RestKit 中的多个资源路径?
Posted
技术标签:
【中文标题】如何将核心数据类路由到 RestKit 中的多个资源路径?【英文标题】:How can I route a Core Data class to multiple resource paths In RestKit? 【发布时间】:2012-05-01 17:01:30 【问题描述】:我有一个 Web 服务,它需要两部分查询才能完全获取我需要的信息。我可以通过对 /vehicles.json 的 GET 请求来查询所有车辆的列表,它会为我提供所有车辆的列表,如下所示:
vehicles: [
vehicle_name: "Sam's Toyota Corola",
uri: ".../vehicle/1001.json"
,
vehicle_name: "John's Honda Accord",
uri: ".../vehicle/1002.json"
]
uris 是唯一的 id。然后,如果我想了解更多信息,我可以查询 通过对车辆 uri 的 GET 请求获取车辆的详细信息,即 /vehicle/1001.json,它为我提供了这样的车辆的详细信息:
vehicle:
engine: "V6",
sunroof: "no"
我想用一种核心数据类型表示车辆,该类型包含:名称、uri、引擎和天窗,但在 RestKit 中有两条路线映射到相同的核心数据类型,如下所示:
// Map the list of all vehicles route
[objectManager.router routeClass:[CDVehicle class] toResourcePath:@"/vehicles.json" forMethod:RKRequestMethodGET];
// Map the show of a specific vehicle route
[objectManager.router routeClass:[CDVehicle class] toResourcePath:@"/vehicle/(vehicleID).json" forMethod:RKRequestMethodGET];
RestKit 不喜欢这样,并给我一个错误,即 GET 方法有两条路由映射到同一事物。为什么?!?这当然是可以做到的,看看你如何用 RestKit 做几乎任何事情。
有人知道怎么做吗?
【问题讨论】:
在您的 JSON 中,您有车辆和车辆。您不想将车辆映射到 CDVehicles 并将车辆映射到 CDVehicle 吗?? 不,我希望映射到 Core Data 中的单个车辆类。 Web 服务 api 会返回一个仅包含名称和 uri 的车辆列表,然后希望您在 uri 上执行另一个 GET 以获取该车辆的其余信息(如果需要)。我不喜欢这样,只想将数据存储在单个 Core Data 类中,一开始只填写名称和 uri,然后在后续 Web 服务调用后填写其余详细信息。 【参考方案1】:这个问题有点老了,但是我google了你的问题和一个类似的问题,另一个有一个很好的答案,以防你仍然感兴趣,请参考这个帖子:How do I have two post routes for the same class in RestKit
他们在谈论postObject,但是RestKit中的get方法也可以做同样的事情。
【讨论】:
以上是关于如何将核心数据类路由到 RestKit 中的多个资源路径?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 iOS 6 中的 RESTkit 2.0 将 JSON 中的 base64 图像导入核心数据二进制文件?
将 JSON 键值映射到 RestKit 0.20.1 中的核心数据属性
如何使用 RestKit 将嵌套的 JSON 对象存储到核心数据中