2012-02-20 2 views
1

저는 RestKit으로 처음으로 일하고 있습니다. 아쉽게도 현재 프로젝트에서 루프가 발생했습니다.RestKit : 두 개의 개별 피드, 두 개의 서로 다른 개체 유형. 하나의 객체 관리자?

먼저 두 피드가 있습니다. 뉴스에 대한 하나 개의 사진에 대해 하나 ...

뉴스 피드 ...

[ 
    {"id":1234, "title":"Top story"}, 
    {"id":1235, "title":"Next story"}, 
    {"id":1236, "title":"Final story"} 
] 

사진 ...

[ 
    {"id":1919, "url":"president.jpg"}, 
    {"id":1920, "url":"celebrity.jpg"}, 
    {"id":1921, "url":"sports.jpg"} 
] 

공급 ... 내 핵심 데이터 모델에서 나는이 단체가 이러한 속성과 일치하는 생성됩니다. 나는

RKManagedObjectMapping* newsMapping = [RKManagedObjectMapping mappingForEntityWithName:@"News"]; 
newsMapping.primaryKeyAttribute = @"id"; 

[newsMapping mapKeyPath:@"id" toAttribute:@"id"]; 
[newsMapping mapKeyPath:@"title" toAttribute:@"article_id"]; 

[objectManager.mappingProvider setMapping:newsMapping forKeyPath:@"News"]; 


RKManagedObjectMapping* photoMapping = [RKManagedObjectMapping mappingForEntityWithName:@"Photo"]; 
photoMapping.primaryKeyAttribute = @"id"; 

[photoMapping mapKeyPath:@"id" toAttribute:@"id"]; 
[photoMapping mapKeyPath:@"url" toAttribute:@"url"]; 

[objectManager.mappingProvider setMapping:photoMapping forKeyPath:@"Photo"]; 

... 나는 지정된 keyPaths이 피드에 존재하지 않는 것을 알고 있지만, 빈 keyPaths를 제공하고있어 위의 코드에서 단지를 덮어 듯 ... 또한 설치 RestKit 내 매핑이 매핑과 RestKit은 피드에없는 keyPAths를 무시하는 것처럼 보였다. 다음으로 각 뷰 컨트롤러에서 객체를 표시 할 때 꽤 유사한 코드를 실행합니다 ...

... 충분한 배경. 이 모든 코드는 모두 뉴스와 사진을 제로로로드합니다. 사진 매핑을 주석 처리하면 모든 뉴스 항목이 채워지고 뉴스 매핑을 주석 처리하면 내 사진이 상점에 표시됩니다.

RestKit은 각 피드의 콘텐츠를 매핑과 일치시킬 수 없습니다. 피드에 지정된 것이 없으므로 setMapping : forKeyPath :에 지정된 키 경로가 작동하지 않습니다. 아마 objectManager.inferMappingsFromObjectTypes = YES라고 생각했을 때 RestKit은 각 피드의 내용을 검사하고 적절한 매핑을 선택했지만 그렇지 않았습니다. 또한, 나는 objectMappingForClass를 가정했다 : 자동으로 정확한 매핑을 얻겠지만, 그렇지 않았다. 누구든지이 아이디어를 만드는 방법을 알고 있습니까?

업데이트 : 사실, 앱이 처음 실행될 때로드 된 항목이 없다고보고하더라도, 중지했다가 다시 실행하면 20 개의 뉴스 항목과 20 개의 사진이 캐시에서로드됩니다. 이 메시지는 한 번 실행하여 "0 개의 News 개체를 모두 로컬 저장소에 캐싱"메시지를보고 즉시 .sqlite 파일을 열고 예상대로 20 개 항목을 모두보고 확인했습니다.

답변

0

이 댓글 : https://groups.google.com/d/msg/restkit/b0K0nCha8D0/VadnqDVB1-oJ이 올바른 길로 나를 보내 었습니다. 나는 기존의 Core Data 스택을 가진 프로젝트를 가지고 있었고 일단 다른 상점과 컨텍스트 세트와 관련된 모든 코드를 제거했다면 모든 것이 매력적이었습니다. 정말 멋진 프레임 워크.

관련 문제