2012-02-17 4 views

답변

1

하나의 fetchRequest로이 작업을 수행 할 수 없습니다. 당신은 두 가지를해야 할 것입니다.

매일

, 그저 날짜의 오름차순으로, 그 날의 시작 후 발생으로 제한하고, 하나 개의 항목 만 가져 술어를 사용 : 물론

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
request.entity = [NSEntityDescription entityForName:@"YourObject" inManagedObjectContext:context]; 
request.predicate = [NSPredicate predicateWithFormat:@"date > %@", beginningOfDay]; 
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES]]; 
request.fetchLimit = 1; 

을, 당신이 원하는 것 같은 날에 여전히 있는지 확인하는 항목을 확인하십시오. 그런 다음 다음 날 반복하십시오.

+0

의견을 보내 주셔서 감사합니다.하지만 이미 시도해 보았습니다. 죄송합니다 코드를 게시해야합니다. 이 문제는 반입 제한을 1로 설정하는 것이 너무 심한 경우입니다. 모든 후속 이벤트가 손실됩니다. – Jim

+0

제 잘못, 질문에 그 부분을 놓쳤습니다. 나는 나의 대답을 업데이트했다. 그러나 짧은 버전은 단지 하나의'NSFetchRequest'만으로는 할 수 없다는 것입니다. – yuji

+0

필자는 fetchRequest가 둘 이상 필요하다고 생각했습니다. 나는 SUBQUERY로 그것을하는 현명한 방법이 있기를 바라고 있었다. NSPredicate가 조건문 (스위치, if 등)을 지원하지 않는다는 것은 불행한 일입니다. – Jim

관련 문제