2013-11-28 2 views
1

케이스 생성 :
나는 2 개의 다른 엔티티 NoteSleep와 코어 데이터를 사용하여 응용 프로그램 작업을하고 있습니다. 하루 동안이 엔티티의 인스턴스가 여러 번 추가 될 수 있습니다.코어 데이터 : 가져 오기 및 날짜를 ​​기준으로 그룹 다른 엔티티

참고 timestamp (날짜), note (문자열) 및 몇 가지 다른 관련없는 특성을 저장하십시오. 매일 메모하는 데 사용됩니다. 수면 저장 timeStart (날짜) 및 timeEnd (날짜) - 사용자의 수면을 추적하는 데 사용됩니다.

문제
내가 timestamptimeEnd에 의해 두 엔티티 Note + Sleep 및 그룹을의 모든 항목을 가져 오기 할; 따라서 각 날짜의 셀/행이있는 테이블 뷰에 표시 될 수 있습니다.

어떤 날 (사용자가 하루에 두 번자는 경우, 예를 들어)

슬립 데이터가 수면의 총 시간을 계산하는 데 사용됩니다 만 참고하고 다른 날에만 잠이있을 수 있습니다.

어떻게하면됩니까? 나는 그것이 의미가 있기를 바랍니다. 그렇지 않으면 알려주세요.

+1

핵심 데이터 날짜가 수 밀리 초 미만으로 줄어들 수 있으므로 메모 및 절전 기록과 일치하는 데 어려움이있을 수 있으므로 날짜가 아닌 요일별로 그룹화 하시겠습니까? Note와 Sleep 사이의 관계를 만드는 것이 더 쉬울 수도 있습니다. 여기에는 DAY 당 하나의 Note가 있고 DAY 당 none 또는 더 많은 Sleeps가 있습니다.그런 다음 Note는 관련 수면 기록에서 수면 시간을 계산하는 일시적인 특성을 가질 수 있습니다. –

+0

입력 해 주셔서 감사합니다 Duncan; 내 앱을 구조화하는 방식을 재고해야 할지도 모르겠다. 나는 내가 그것을 어떻게하고 싶은지를 이해하기 위해 약간의 시간이 필요할 것이다. –

답변

2

핵심 데이터 가져 오기 요청은 하나의 특정 엔터티 (및 하위 엔터티 )의 개체 만 가져올 수 있습니다. 가져온 결과 컨트롤러에서도 마찬가지입니다. 따라서

테이블보기에서 함께 NoteSleep 엔티티를 표시하려면 다음과 같은 옵션이 있습니다 A로부터

  • Note을 하나의 모든 속성을 보유 법인 또는
  • 를 사용하고 Sleep 상속을 공통 상위 엔터티 또는
  • timestamp 특성과 함께 하나의 관계를 가진 Entry을 만들고 Note 및에 대한 to-one 관계.

코어 데이터는 모든 개체가 모든 특성을 포함하는 단일 테이블에 저장된다는 점에 유의하십시오.

어느 경우 든 타임 스탬프에서 개체를 정렬하거나 컨트롤러의 sectionNameKeyPath 매개 변수를 사용하여 섹션을 그룹으로 그룹화 할 수 있습니다.

유일한 대안은 객체를 개별적으로 가져 와서 병합하는 것입니다. 그러나 변경 추적과 같이 가져온 결과 컨트롤러의 모든 이점을 잃게됩니다.

+0

귀하의 답장을 보내 주셔서 감사합니다 마틴, 나는 세 번째 방법을 시도하고 곧 다시 (그리고 희망 답변으로 귀하의 제안을 표시) –

관련 문제