2014-09-04 2 views
-1

NSFetchedResultsController 캘린더 스타일 App - 현재 날짜에 약속/이벤트가 없을 때 캘린더 앱과 같이 0 행의 섹션을 추가하려면 어떻게해야합니까? NSFetchedResultsController를 사용하는 것을 포기하고 싶지는 않습니다. 빠르고 최적화 되었기 때문에 아이디어가 없습니다.NSFetchedResultsController - 행이없는 섹션 추가

데이터 모델 제안도 환영합니다.

+0

이것은 실제로 가져온 결과 컨트롤러가 아닌 테이블보기 또는 컬렉션보기입니다. 데이터 원본 메서드는 데이터가있는 위치와 그렇지 않은 위치를 뷰에 알려주며, 여기에서 원하는 동작을 구현합니다. – quellish

답변

0

데이터 모델 솔루션은 분명합니다. Day 엔티티를 만들고 충분한 날짜로 채우고 (아마 ad hoc으로 작성) 이벤트에 할당하십시오 (일 -> 일대 다). 이벤트에는 여전히 고유 한 시작 날짜 등이 있어야합니다. 유형은 NSDate입니다. 섹션 엔티티에 대해 Day 엔티티 만 사용하십시오.

나는 그 길로 내려가는 것을 권하지 않습니다. 대신 datasource에 일 수를 나타내는 적절한 섹션 수를 표시하고 indexPath 및 시작 날짜 (indexPath.row == 0)를 기준으로 날짜를 계산하여 섹션 헤더를 채우라고 말할 수 있습니다.

가져온 결과 컨트롤러 fetchedObjects 속성을 사용하여 행을 채 웁니다.

NSPredicate *filter = [NSPredicate predicateWithFormat: 
    @"startDate > %@ && startDate < %@", sectionStartDate, sectionEndDate]]; 
NSArray *events = [self.fetchedResultsController.fetchedObjects 
    filteredArrayUsingPredicate:filter]; 
Event *eventForRow = events[indexPath.row]; 

섹션 날짜가 하루의 시작과 끝 부분에 해당하는 기간이 될 것입니다 : 당신은 여전히 ​​최적화의 대부분을 얻을 것이다 당신은 후 수 있습니다.

관련 문제