0
주어진 날에 첫 번째 이벤트 발생을 예측하는 방법을 찾으려고합니다. 하루 중 여러 번 이벤트가 발생한다고하면 (1 ~ 16 범위), 첫 번째 발생을 반환 한 다음 다음날 첫 번째 발생을 찾습니다.fetchRequest에서 첫 번째 항목에 대해 술어를 쓰는 법
주어진 날에 첫 번째 이벤트 발생을 예측하는 방법을 찾으려고합니다. 하루 중 여러 번 이벤트가 발생한다고하면 (1 ~ 16 범위), 첫 번째 발생을 반환 한 다음 다음날 첫 번째 발생을 찾습니다.fetchRequest에서 첫 번째 항목에 대해 술어를 쓰는 법
하나의 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;
을, 당신이 원하는 것 같은 날에 여전히 있는지 확인하는 항목을 확인하십시오. 그런 다음 다음 날 반복하십시오.
의견을 보내 주셔서 감사합니다.하지만 이미 시도해 보았습니다. 죄송합니다 코드를 게시해야합니다. 이 문제는 반입 제한을 1로 설정하는 것이 너무 심한 경우입니다. 모든 후속 이벤트가 손실됩니다. – Jim
제 잘못, 질문에 그 부분을 놓쳤습니다. 나는 나의 대답을 업데이트했다. 그러나 짧은 버전은 단지 하나의'NSFetchRequest'만으로는 할 수 없다는 것입니다. – yuji
필자는 fetchRequest가 둘 이상 필요하다고 생각했습니다. 나는 SUBQUERY로 그것을하는 현명한 방법이 있기를 바라고 있었다. NSPredicate가 조건문 (스위치, if 등)을 지원하지 않는다는 것은 불행한 일입니다. – Jim