1

現在、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"] }

助けていただければ幸いです。ありがとう!

4

1 に答える 1