我目前在我的 iOS 项目中使用 RestKit 版本 0.20.3 与我的后端 Web 服务进行通信。
在某些情况下,我的 Web 服务以字符串格式返回一组标签 (django-taggit),我需要将每个标签字符串映射到一个核心数据实体。
// example JSON from web service
"response" : { "tags": ["tag1", "tag2", "tag3"] }
// example Core Data entities
@interface TagEntity : NSManagedObject
@property (nonatomic, retain) NSString *tagName;
@end
从下面的讨论中,我找到了一种将标记字符串数组映射到核心数据对象的方法。
https://groups.google.com/forum/#!topic/restkit/54eZFQIjl7c
tagEntityMapping = [RKEntityMapping mappingForEntityForName:@"TagEntity" inManagedObjectStore:[RKManagedObjectStore defaultStore]];
[tagEntityMapping addPropertyMapping:[RKAttributeMapping mappingFromKeyPath:nil toKeyPath:@"tagName"]]
tagEntityMapping.identificationAttributes = @[@"tagName"];
[resultEntityMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"tags" toKeyPath:@"tags"withMapping:tagEntityMapping]];
现在,我正在寻找一种将标签字符串数组从 Core Data 对象发布到 Web 服务的方法。
换句话说,鉴于我有一个 TagEntity Core Data 对象数组,我希望发送一个 [TagEntity tagName] 数组
为了实现这一点,我使用 [resultEntityMapping inverseMapping] 作为请求映射,但结果,我得到
"request" : { "tags": [{"tag1": {}}, {"tag2": {}}, {"tag3": {}}] }
而我真正希望得到的是
"request" : { "tags": ["tag1", "tag2", "tag3"] }
我将不胜感激任何帮助。谢谢!