2015-01-03 1 views
0

내 API 개발자가 기대하는 것과는 조금 다른 코어 데이터 데이터 모델이 있습니다. (읽기 쉽도록 단순화) : 일부 사용자 정의 클래스Restkit 0.24.0 : JSON에 객체 (일대 다 관계 포함)를 직렬화하는 방법

모두를 시작하고 제공하는 변환기 클래스를 사용하여 원하는 형식으로 내 managedObjectModels을 단순화

(방법에 응용 프로그램 작동으로 인해 나는이 이탈 할 수 없음)

  • 최상위 오브젝트를 보유 generalData 클래스
  • GeneralData
  • otherData 클래스 내에서 일대 다 관계 객체의 포맷을 나타내는 클래스 manyData 그것은 또한 generalData 클래스 내의 일대 다 관계 객체를 보유하지만 manyData 클래스와 관련이 없습니다. (있는 NSString *) ID
    - - (있는 NSString *) 이름
    - (있는 NSString *) 위치
    - (NSArray를 *) manyDataObjects
    - (

    :

이은 generalData 속성입니다 NSArray *) otherDataObjects

각 manyData 및 OtherDataObject는 차례대로 기본 속성, 자체 ID 및 generalData ID를 보유합니다.

+ (RKObjectMapping *)defineRequestMapping 
{ 
RKObjectMapping * mapping = [RKObjectMapping mappingForClass:[generalData class]]; 
[mapping addAttributeMappingsFromDictionary:@{ 
            @"generalID": @"generalID", 
            @"generalName": @"generalName", 
            @"generalPosition": @"generalPosition", 
            @"generalManyData": @"generalManyData", 
            @"generalOtherData": @"generalOtherData" 
             }]; 

return mapping; 
} 

및과 같이 실행 :

은 내가 generalData 클래스에 다음 requestmapping을 추가 한

RKObjectMapping *requestMapping = [[generalData defineRequestMapping] inverseMapping]; 
[objectManager addRequestDescriptor:[RKRequestDescriptor 
           requestDescriptorWithMapping:requestMapping objectClass:[generalData class] rootKeyPath:nil method:RKRequestMethodPOST]]; 

나는 또한 manyData 및 OtherData 클래스와 유사한 defineRequestMapping 클래스 메소드를 추가했습니다.

내가 Restkit을 사용하여 generalData 클래스를 직렬화하려고 할 때마다 unkown manyData 클래스를 직렬화 할 수 없다는 오류가 발생합니다. "generalManyData"및 "generalOtherData"행에 주석을 달면 다른 3 개의 특성이 직렬화됩니다. 몸.

나는 내 마음을 치우기 위해 튜토리얼을 찾지 못했고, 다음에 무엇을 해야할지에 대한 생각을 잠시 마쳤습니다. 나는 relationshipMapping을 사용해 보았지만 더 이상 나를 데려 오지 못했습니다. 아마도 뭔가를 잊었을까요? RKRelationshipMapping

에 대한 문서 밖으로

+0

"manyData"및 "otherData"클래스에 설정하는 매핑에 문제가있는 것 같습니다. 나는 코드를 보지 않고 무엇을 말할 수는 없지만 중단 점을 설정하고 해당 클래스에 매핑이 설정되어 있고 해당 클래스의 모든 객체 매핑이 올바르게 시작되도록 구성되어 있는지 확인합니다. – ahtierney

+0

흠 그것..JSONWrite 오류는 배열의 manyData 객체로 이동할 수 없기 때문에 발생합니다. 이러한 중첩 된 매핑을 설정하는 절대적인 올바른 방법은 무엇입니까? – BossBols

+0

당신은 실제로 각 클래스에 대한 인터페이스 (속성 포함)와 매핑을 보여줘야합니다. 지금 귀하의 속성 이름과 매핑 이름이 일치하지 않습니다 ... – Wain

답변

0

확인 당신은 두 클래스 사이에 일대 다 관계를 구축하기 위해 generalObject에 대한 매핑 내에서 둥지에 generalManyData에 대한 RKRelationshipMapping 개체가 필요합니다. 중첩 된 객체가 있으면 간단한 문자열 값이 작동하지 않습니다.