如何在fetchRequest上首次出现谓词

时间:2012-02-17 14:46:58

标签: iphone ios nsfetchedresultscontroller predicate

我试图找到一种方法来预测某一天发生的事件。所以说事件在白天多次发生(范围1-16),我只希望它返回第一次出现,然后在第二天查找下一次出现的事件。

1 个答案:

答案 0 :(得分: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;

当然,你需要检查你得到的物品,以确保它仍然在同一天。然后,重复第二天。