特定实体的 RestKit 映射
Posted
技术标签:
【中文标题】特定实体的 RestKit 映射【英文标题】:RestKit mapping for specific entity 【发布时间】:2013-10-28 13:11:58 【问题描述】:我已经使用了用于不同实体映射的通用 RKObjectManager,如下面的 cod,但是当我尝试为特定实体进行映射时无法进行,因为我有两个具有相同 keyPath 的实体,这是我怎么能想到的问题。
// Search mapping ...
RKEntityMapping *searchEntityMapping = [RKEntityMapping mappingForEntityForName:NSStringFromClass([ABB class]) inManagedObjectStore: aBBManager.managedObjectStore];
[searchInfoEntityMapping addAttributeMappingsFromDictionary:@
@"count" : @"count",
@"total_count" : @"totalCount",
];
// Search Advanced mapping ...
RKEntityMapping *searchAdvEntityMapping = [RKEntityMapping mappingForEntityForName:NSStringFromClass([ABB class]) inManagedObjectStore: aBBManager.managedObjectStore];
[searchAdvEntityMapping addAttributeMappingsFromDictionary:@
@"count" : @"count",
@"data" : @"dataCount",
];
// Search Descriptor
RKResponseDescriptor *aBBResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:searchEntityMapping pathPattern:nil keyPath:@"locations" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
// Search Adv Descriptor
RKResponseDescriptor *aBB2ResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:searchAdvEntityMapping pathPattern:nil keyPath:@"locations" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
【问题讨论】:
【参考方案1】:您应该使用pathPattern
参数来允许RestKit 在您发出特定请求时知道使用哪个响应描述符(因为您应该在URL 中为不同的实体使用不同的路径)。
如果由于某种原因不能,您需要创建多个 RKObjectManager
实例,并为您提出的每个不同请求使用适当的实例。
【讨论】:
以上是关于特定实体的 RestKit 映射的主要内容,如果未能解决你的问题,请参考以下文章