有没有一种方法可以在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/

10-10 16:45