有没有一种方法可以在NSDate
中查询CoreData
。例如,如果我想要一个具有最高NSDate
值的实体?我看到NSExpression
“ max:”只需要一个NSNumber
。
最佳答案
实际上,您可以仅向SQL请求该值,而不是具有该值的对象:
NSExpression *date = [NSExpression expressionForKeyPath:@"date"];
NSExpression *maxDate = [NSExpression expressionForFunction:@"max:"
arguments:[NSArray arrayWithObject:maxDate]];
NSExpressionDescription *d = [[[NSExpressionDescription alloc] init] autorelease];
[d setName:@"maxDate"];
[d setExpression:maxSalaryExpression];
[d setExpressionResultType:NSDateAttributeType];
[request setPropertiesToFetch:[NSArray arrayWithObject:d]];
NSError *error = nil;
NSArray *objects = [managedObjectContext executeFetchRequest:request error:&error];
if (objects == nil) {
// Handle the error.
} else {
if (0 < [objects count]) {
NSLog(@"Maximum date: %@", [[objects objectAtIndex:0] valueForKey:@"maxDate"]);
}
}
有关更多详细信息,请参见CoreData文档中的“获取托管对象->获取特定值”。
要么
执行查询,在日期字段DESCENDING上排序,并使用setFetchLim进行查询:1。
它并不完美,但至少可以正常工作。
关于ios - 查询核心数据中的最大NSDate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38348093/