2012-02-09 4 views
1

Это первый раз, когда я пытаюсь использовать CoreData, и у меня возникли проблемы с получением максимальной даты из таблицы.Получение максимального значения с помощью CoreData

Это в основном то, что я пытаюсь сделать:

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Radar" inManagedObjectContext:managedObjectContext]; 
[request setEntity:entity]; 

NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"modifiedOn"]; 
NSExpression *maxDate = [NSExpression expressionForFunction:@"max:" arguments:[NSArray arrayWithObject:keyPathExpression]]; 

NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init]; 
[expressionDescription setName:@"maxDate"]; 
[expressionDescription setExpression:maxDate]; 
[expressionDescription setExpressionResultType:NSDateAttributeType]; 

[request setPropertiesToFetch:[NSArray arrayWithObject:expressionDescription]]; 

NSError *error = nil; 
NSArray *objects = [managedObjectContext executeFetchRequest:request error:&error]; 
if (objects == nil) { 
    // Handle the error. 
} 
else { 
    if ([objects count] > 0) { 
     NSLog(@"%d", [objects count]); 
     NSLog(@"MAx date: %@", [[objects objectAtIndex:0] valueForKey:@"modifiedOn"]); 
    } 
} 

Этот код как-то делает противоположное тому, что я хочу, и напечатать минимальный срок. Поскольку я только начал с CoreData, очевидно, что у меня что-то не так, но что?

+0

Проверьте второй ответ здесь: http://stackoverflow.com/questions/4789033/querying-max-min-and-other-via-core-data – sho

+0

@sho - Я получил его, используя технику, описанную в ответ, на который вы указали мне, однако, официальная документация использует код, который я вставил на вопрос. Любые идеи о том, почему этот код, который почти является копией документа из документов, не работает? благодаря – Raphael

ответ

0

Возможно, вам стоит попробовать NSLog [objects lastObject] вместо первого?

Смежные вопросы