2014-01-08 4 views
2

RestKit 0.20을 사용하여 데이터를 코어 데이터에 매핑하고이를 UITable로 표시합니다. mainQueue의 ManagedObjectContext에 'Activity'객체 인 데이터를 쓰고 있습니다. 모두 잘 작동합니다. 이제는 Future-Activities로 두 번째 테이블이 필요하고 Past-Activities로 세 번째 테이블이 필요합니다. 정렬이 서버 측에서 수행 될 때마다 각 테이블에 ManagedObjectContext가 필요합니다. 어떻게 처리하고 지속적인 데이터를 얻을 수 있습니까? 'newChildManagedObjectContextWithConcurrencyType'이 필요한가요?RestKit 0.20 및 ManagedObjectContext

+0

이 경우 다른 컨텍스트 (실제로는 영구 저장소)가 필요하지 않습니다. 'Activity' 객체에 태그를 지정하여 그 객체가 무엇인지 알 수 있도록하는 방법이 필요합니다. JSON은 무엇입니까? 일부 요청 메타 데이터를 사용할 수 있습니까? – Wain

+0

각 경우 (모두, 미래 또는 과거)마다 다른 Url 인수를 사용하므로 페이로드에 정확히 필요한 항목이 있고 asc/desc를 정렬했습니다. 그러나 과거 활동을 표시 한 후 미래 버튼을 누르면 미래 활동을 표시 할 때까지 새로운 페이로드를 기다려야합니다. 영구 저장소에 이미 데이터가 있고 변경되지 않은 경우 사용자는 전혀 지연을 알지 못합니다. 가능하면 내 목표입니다. – Alan

+0

그리고 질문에 대답하기 위해 Json에는 "all_day" "start_time" "end_time"필드가 있으므로 페이로드가 도착할 때까지 데이터를 표시 할 수 있습니다. – Alan

답변

1

단일 저장소를 유지하십시오. 술어를 사용하여 원하는 항목을 필터링하십시오.

모든 데이터를 다운로드 할 수 있고 (일부 데이터는 사용자가 사용할 수는 없지만 데이터를 다운로드 할 수 있다면), 그 데이터가 사용 된 태그에 대해 태그를 지정할 수 있습니다. 선택권.

RestKit의 관점에서 메타 데이터를 사용하여 매핑 프로세스 중에 항목에 태그를 지정하여 사용 방법을 알 수 있습니다. 그런 다음 필터링 할 수 있습니다. 이렇게하려면 항목에 새 키를 추가해야합니다. 그러나 한 항목이 모든 응답에 포함될 수 있으면 값이 덮어 쓰기 때문에 문제가됩니다.

@"@metadata.URL": @"requestURL" 
@metadata.URL는 요청을하는 데 사용되는 URL이

requestURL 당신이 필터링에 사용할 수있는 개체의 속성입니다 :

단순히 같은 새로운 매핑을 추가, 메타 데이터를 사용합니다. 조건자는 contains ("all_day" "start_time" "end_time") 유형을 확인합니다.

+0

나는이 대답을 가지고 갈 것이다. 각 항목은 모든 URL, 미래 URL 및 과거 URL에서 필터링 할 수 있습니다. 더는 할 필요가 없다. 그러나 어떻게 @ metadata.URL을 RKPaginator에 보내야합니까? RKMappingOperation을 사용하는 예제가 있는데, 어떻게 연결합니까? – Alan

+0

그렇지 않습니다. 매핑에 메타 데이터를 사용할 수 있습니다. 페이지 매김은 URL을 생성합니다. – Wain

+0

뭔가 빠뜨린 것 같습니다 : 'requestURL'문자열을 내 Activitiy 엔터티에 추가하고 @ "@ metadata.URL": @ "requestURL"을 내 RKEntityMapping에 추가했습니다. 그러나 requestURL은 nil이며 매핑되지 않습니다. 로그 출력은 다음과 같습니다. 매핑 가능한 속성 값 keypath '@ metadata.URL'을 찾지 못했습니다 – Alan

관련 문제