2013-05-20 2 views
1

현재 핵심 데이터 애플리케이션을 구축 중이며 걸림돌을 맞았습니다. 여기 스키마의 일부 컨텍스트가 있다고 생각합니다.핵심 데이터 검색 기록 혼동

앱은 클라이언트와 상담자 세션을 추적합니다. 따라서 스키마는 다음과 같이 구성됩니다. 클라이언트 테이블, 클라이언트 세션, 세션 활동 및 활동 메트릭이 있습니다. 응용 프로그램에서 이러한 메트릭은 간단한 카운터, 타이머 및 NSSliders로 변환됩니다.

요점은 클라이언트가 이전에 만든 활동을 새로운 클라이언트의 새 세션에 삽입 할 수 있기를 원한다는 것입니다. 그래서 간단한 가져 오기 요청을 한 다음 NSFetchedResultsController로 이동했습니다. 핵심 데이터가 객체 그래프이기 때문에 사실상 동일한 데이터로 많은 액티비티 항목을 얻습니다. 유일한 차별화 된 속성은 세션이 무엇이든간에 (그리고 더 이상 뒤로 이동하려면 클라이언트 자체).

이것이 스키마 자체에서 변경해야하는 것인지 또는 핵심 데이터 내에서 해결할 수있는 일이 있는지 확실하지 않습니다. NSFetchedResultsController를 사용하여 결과 유형 NSDictionaryResultType을 사용하여 뚜렷한 결과를 가져 오려고했습니다. 내가 원하는 것을 성취하지만 엔터티의 관련 속성 만 가져오고 연관된 엔티티는 가져 오지 않습니다 (이러한 메트릭이 필요합니다.).

아무런 도움이 필요 없으며 특정 코딩 오류가 실제로 없더라도 원하는 경우 코드를 게시 할 수 있습니다.

답변

1

문제가 표시되지 않습니다. Client, Session, ActivityMetric 엔티티를 사용하여 모델링 한 경우 각 엔티티는 왼쪽에서 왼쪽으로의 순서대로 오른쪽에서 일대 다 역 관계에 대해 1 대다 관계를가집니다 (I 엔티티를 나열한 경우), 특정 활동을 (다른 클라이언트의) 다른 세션에 추가하는 것을 막을 수있는 것은 아무것도 없습니다.

아마도 내가 질문을 오해하고 있습니다.

+0

나는 정확히 그런 식으로 모델을 만들었고, 나는 나를 막을 것이 없다고 생각하지 않는다는 것에 동의한다. 어쩌면 나의 질문은 "그것에 대해 가장 좋은 방법은 무엇입니까?" NSFetchedResultsController는 혼성 결과를주었습니다. – jason328

+0

@ jason328 코드를 작성하여 원하는 정확한 Activity 객체를 가져와야 할 수도 있습니다. 여기에 설명 된대로 NSFetchRequest와 NSPredicate를 사용하면됩니다 : http://developer.apple.com/library/mac/#documentation/cocoa/Conceptual/CoreData/Articles/cdFetching.html#//apple_ref/ doc/uid/TP40002484-SW1 그런 다음 해당 객체를 원하는 Session 객체에 추가 할 수 있습니다. – 7cows

+0

@ 7cows3, ​​감사합니다! – jason328

1

그냥 간단한 NSFetchRequest를 사용하여 찾고자하는 것을 정확하게 조건부로 설정하십시오. 너무 많은 결과를 얻었지만 질문이 IMO 질문처럼 들리지 않으면 가져 오기 제한을 설정할 수 있습니다.

나는 당신이 찾고있는 것이 결과를 좁히는 NSPredicate라고 믿습니다. 특정 객체를 가져 오면 도트 표기법을 사용하여 해당 객체에 관계 또는 속성을 쉽게 할당하고 컨텍스트를 저장할 수 있습니다.