2014-04-22 2 views
0

대다수의 관계가있는 두 개의 서로 다른 웹 서비스의 두 엔티티가 있습니다.RKConnectionDescription Restats 0.20.3이 불안정합니다.

엔티티 A { 이 NSString * ID를 는 NSString * 상세 }

엔티티 B { 는 NSString * 키 는 NSString * 값 는 NSString * 형 는 NSString * foreignId }

엔티티 B를 매핑하려고합니다.

+ (RKObjectMapping *)mapping { RKEntityMapping *mapping = [RKEntityMapping mappingForEntityForName:NSStringFromClass([self class]) inManagedObjectStore:[RKObjectManager sharedManager].managedObjectStore]; 
    [mapping addAttributeMappingsFromDictionary:@{ 
                @"key": @"key", 
                @"id":@"foreignId", 
                @"type":@"type", 
                @"value":@"value" 
                }]; 

    mapping.identificationAttributes = @[@"featureKey",@"type",@"foreignID"]; 
    [mapping addConnectionForRelationship:@"homeApplianceDatas" connectedBy:@{@"foreignId":@"id"}]; 

    return mapping; 
} 

내 테 st json 타입 B의 모든 엔티티는 동일한 foreignID "Car"를 가지고 있지만 그 중 소수만이 "A"엔티티 (약 15 %)와 관계를 갖습니다 !!!

아이디어가 있으십니까?

+0

15 %가 모두 단일 응답으로 수신 되었습니까 (다른 85 %는 이전 응답에서 수신 한 것입니까?)? – Wain

+0

B 엔티티에 대한 서비스가 엔티티 A가 존재하기 전에 여러 번 트리거 될 수 있습니다. – tallis

답변

0

외래 키 매핑을 사용할 때 대상 개체가 발견되지 않으면 모 연결을 할 수 있습니다. 연결은 나중에 다시 처리되지 않습니다.

또한 RestKit의 버그로 간주 될 수 있습니다. 새 외래 키 매핑 관계 내용 은 이전 관계 내용을으로 바꿉니다. 중첩 된 관계 처리 지정 정책의 경우와 같이이 동작을 수정할 수있는 API는 없습니다.

따라서 여러 가지 경우에 연결해야하는 모든 항목이 실제로 연결되었는지 확인하기 위해 사용자가 외래 키 정보를 직접 처리해야합니다. RestKit에 할당 정책에 대한 문제를 제기 할 수는 있지만 첫 번째 문제는 디자인 문제입니다.

+0

누락 된 연결을 추가하기 위해 임시 해결책을 사용했지만, 왜 휴식 키트가 많은 문제를 일으키는 지 알고 싶었습니다. 휴식 키트의 문제점은 표준 동작이 없다는 것입니다. 때로는 모든 엔티티를 연결하기도하고 때로는 일부 엔티티를 연결하는 경우도 있습니다. – tallis

+0

테스트에 대해 더 알고 싶습니다. 동일한 테스트를 두 번 실행하면 똑같은 결과가 나타납니다. – Wain

관련 문제