我有一个Comment
拥有父实体的 CoreData 实体Measurement
。
Measurement
实体有一个measurementDate
属性 。
我的核心数据数据库中有 200Comment
条记录,每条记录在measurementDate
过去 3 年中都有不同的值。
我正在尝试获取measurementDate
任何两个给定日期之间的记录。
首先,我尝试了这个:
//now fetch a record between 12 and 11 months ago
NSDate *startDate = [AppGlobals dateByAddingMonths:[NSDate date] withMonths:-12];
NSDate *endDate = [AppGlobals dateByAddingMonths:startDate withMonths:1];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(measurementDate >= %@) AND (measurementDate <= %@)", startDate, endDate];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Comment" inManagedObjectContext:self.context]];
[request setPredicate:predicate];
NSError *error = nil;
NSArray *results = [self.context executeFetchRequest:request error:&error];
但我得到了 0 个结果。
所以我尝试用更简单的东西替换我的谓词:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"measurementDate >= %@", startDate];
这应该会返回大约三分之一的结果。但实际上它返回所有 200 条记录。
我已经注销了对象的日期,看起来日期被完全忽略了!
我究竟做错了什么???
是否与父抽象实体有关Measurement
,因为我是从Comment
实体而不是Measurement
实体中获取的?是因为我在我的代码中使用了“原始数据类型的标量属性”吗?
非常感谢任何帮助。