Filter search for largest value based on predicate

This commit is contained in:
Saul Mora
2013-01-28 10:54:52 -07:00
parent df5a092986
commit 8bf7b8649d
2 changed files with 22 additions and 9 deletions

View File

@@ -37,6 +37,8 @@
+ (id) MR_findLargestValueForAttribute:(NSString *)attribute;
+ (id) MR_findLargestValueForAttribute:(NSString *)attribute inContext:(NSManagedObjectContext *)context;
+ (id) MR_findLargestValueForAttribute:(NSString *)attribute withPredicate:(NSPredicate *)predicate;
+ (id) MR_findLargestValueForAttribute:(NSString *)attribute withPredicate:(NSPredicate *)predicate inContext:(NSManagedObjectContext *)context;
+ (id) MR_findSmallestValueForAttribute:(NSString *)attribute;
+ (id) MR_findSmallestValueForAttribute:(NSString *)attribute inContext:(NSManagedObjectContext *)context;

View File

@@ -131,6 +131,25 @@
inContext:[NSManagedObjectContext MR_contextForCurrentThread]];
}
+ (id) MR_findLargestValueForAttribute:(NSString *)attribute withPredicate:(NSPredicate *)predicate;
{
return [self MR_findLargestValueForAttribute:attribute withPredicate:predicate inContext:[NSManagedObjectContext MR_contextForCurrentThread]];
}
+ (id) MR_findLargestValueForAttribute:(NSString *)attribute withPredicate:(NSPredicate *)predicate inContext:(NSManagedObjectContext *)context;
{
NSFetchRequest *request = [self MR_requestAllSortedBy:attribute ascending:NO inContext:context];
[request setFetchLimit:1];
[request setResultType:NSDictionaryResultType];
[request setPropertiesToFetch:@[attribute]];
[request setPredicate:predicate];
NSDictionary *results = [self MR_executeFetchRequestAndReturnFirstObject:request inContext:context];
id value = [results valueForKey:attribute];
return value;
}
+ (id) MR_findLargestValueForAttribute:(NSString *)attribute;
{
return [self MR_findLargestValueForAttribute:attribute inContext:[NSManagedObjectContext MR_contextForCurrentThread]];
@@ -138,15 +157,7 @@
+ (id) MR_findLargestValueForAttribute:(NSString *)attribute inContext:(NSManagedObjectContext *)context;
{
NSFetchRequest *request = [self MR_requestAllSortedBy:attribute ascending:NO inContext:context];
[request setFetchLimit:1];
[request setResultType:NSDictionaryResultType];
[request setPropertiesToFetch:@[attribute]];
NSDictionary *results = [self MR_executeFetchRequestAndReturnFirstObject:request inContext:context];
id value = [results valueForKey:attribute];
return value;
return [self MR_findLargestValueForAttribute:attribute withPredicate:nil inContext:context];
}
+ (id) MR_findSmallestValueForAttribute:(NSString *)attribute;