按属性BETWEEN过滤核心数据结果

时间:2015-12-29 06:35:44

标签: ios objective-c core-data

我目前拥有Core Data成功返回标题为Event:

的特定实体的所有结果
NSManagedObjectContext *context = [delegate managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Event" 
                                                     inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];

NSError *error;
NSArray *fetchResults = [context executeFetchRequest:request error:&error];

现在,在日历绘图时,我需要获取在本月或之前开始日期的事件,结束日期也在当月或之后。

我相信答案与NSPredicate相关,但我还不熟悉它还没有达到我的意愿。

1 个答案:

答案 0 :(得分:1)

将条件更改为谓词:

NSDate * firstDateOfMonth = [self returnDateForMonth:month year:year day:2];
NSDate * lastDateOfMonth = [self returnDateForMonth:month+1 year:year day:1];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(startDate => firstDateOfMonth) and (endDate <= lastDateOfMonth)”];

NSManagedObjectContext *context = [delegate managedObjectContext];

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Event"                                              inManagedObjectContext:context];

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
[request setPredicate:predicate];

NSError *error;

NSArray *fetchResults = [context executeFetchRequest:request error:&error];
相关问题