同じ toKeyPath (destinationKeyPath) を持つ複数の RKRelationshipMappings を使用すると問題が発生します。1 つの RKRelationshipMapping を 1 つの toKeyPath に使用することに成功しましたが、同じ toKeyPath を持つ 2 つ目の RKRelationshipMappings をアタッチできません。
動作する RKRelationshipMapping を 1 つ含むコード:
RKObjectMapping *someObjectRequestMapping = [RKObjectMapping requestMapping];
[someObjectRequestMapping addAttributeMappingsFromDictionary:@{@"prop1" : @"prop_1", @"prop2" : @"prop_2"}];
RKObjectMapping *firstSubObjectMapping = [RKObjectMapping requestMapping];
[firstSubObjectMapping addAttributeMappingsFromDictionary:@{@"subProp1" : @"sub_prop1", @"subProp2" : @"sub_prop2"}];
[someObjectRequestMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"prop3"
toKeyPath:@"prop_3"
withMapping:firstSubObjectMapping];
ただし、別の RKRelationshipMapping を「someObjectRequestMapping」に同じ toKeyPath (「prop_3」) で追加したい場合、RestKit はエラーで失敗します。
*'NSInternalInconsistencyException'、理由:'keyPathのinconsistency_attributesのマッピングを追加できません。すでに存在します...'*
失敗する 2 つの RKRelationshipMappings を含むコード:
RKObjectMapping *someObjectRequestMapping = [RKObjectMapping requestMapping];
[someObjectRequestMapping addAttributeMappingsFromDictionary:@{@"prop1" : @"prop_1", @"prop2" : @"prop_2"}];
RKObjectMapping *firstSubObjectMapping = [RKObjectMapping requestMapping];
[firstSubObjectMapping addAttributeMappingsFromDictionary:@{@"subProp1" : @"sub_prop1", @"subProp2" : @"sub_prop2"}];
RKObjectMapping *secondSubObjectMapping = [RKObjectMapping requestMapping];
[secondSubObjectMapping addAttributeMappingsFromDictionary:@{@"subProp2" : @"sub_prop2", @"subProp3" : @"sub_prop3"}];
[someObjectRequestMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"prop3"
toKeyPath:@"prop_3"
withMapping:firstSubObjectMapping];
[someObjectRequestMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"prop4"
toKeyPath:@"prop_3"
withMapping:secondSubObjectMapping];
マッピングは RKRequestDescriptor で使用されます。
どんな助けでも大歓迎です。
よろしくお願いします、
ダミール