diff --git a/CoreData+ActiveRecordFetching.h b/CoreData+ActiveRecordFetching.h index cd7647b..84d4c06 100644 --- a/CoreData+ActiveRecordFetching.h +++ b/CoreData+ActiveRecordFetching.h @@ -5,7 +5,7 @@ #define kCreateNewCoordinatorOnBackgroundOperations 0 #ifdef ENABLE_ACTIVE_RECORD_LOGGING - #define ARLog(...) NSLog(...) + #define ARLog(...) NSLog(@"%s(%x) %@", __PRETTY_FUNCTION__, self, [NSString stringWithFormat:__VA_ARGS__]) #else #define ARLog(...) #endif diff --git a/NSManagedObject+ActiveRecord.h b/NSManagedObject+ActiveRecord.h index 10c4974..88be416 100644 --- a/NSManagedObject+ActiveRecord.h +++ b/NSManagedObject+ActiveRecord.h @@ -7,7 +7,7 @@ #import #import "ActiveRecordHelpers.h" -#define kActiveRecordDefaultBatchSize 6 +#define kActiveRecordDefaultBatchSize 20 @interface NSManagedObject (ActiveRecord) @@ -36,6 +36,8 @@ + (NSNumber *) numberOfEntitiesWithContext:(NSManagedObjectContext *)context; + (NSNumber *) numberOfEntitiesWithPredicate:(NSPredicate *)searchTerm; + (NSNumber *) numberOfEntitiesWithPredicate:(NSPredicate *)searchTerm inContext:(NSManagedObjectContext *)context; ++ (NSNumber *) numberOfUniqueEntitiesWithPredicate:(NSPredicate *)searchTerm; ++ (NSNumber *) numberOfUniqueEntitiesWithPredicate:(NSPredicate *)searchTerm inContext:(NSManagedObjectContext *)context; + (BOOL) hasAtLeastOneEntity; + (BOOL) hasAtLeastOneEntityInContext:(NSManagedObjectContext *)context; diff --git a/NSManagedObject+ActiveRecord.m b/NSManagedObject+ActiveRecord.m index aacf2bf..c88305e 100644 --- a/NSManagedObject+ActiveRecord.m +++ b/NSManagedObject+ActiveRecord.m @@ -212,6 +212,25 @@ static NSNumber *defaultBatchSize = nil; inContext:[NSManagedObjectContext defaultContext]]; } ++ (NSNumber *) numberOfUniqueEntitiesWithPredicate:(NSPredicate *)searchTerm inContext:(NSManagedObjectContext *)context +{ + NSError *error = nil; + NSFetchRequest *request = [self createFetchRequestInContext:context]; + [request setPredicate:searchTerm]; + [request setReturnsDistinctResults:YES]; + + NSUInteger count = [context countForFetchRequest:request error:&error]; + [ActiveRecordHelpers handleErrors:error]; + + return [NSNumber numberWithUnsignedInt:count]; +} + ++ (NSNumber *) numberOfUniqueEntitiesWithPredicate:(NSPredicate *)searchTerm; +{ + return [self numberOfEntitiesWithPredicate:searchTerm + inContext:[NSManagedObjectContext defaultContext]]; +} + + (BOOL) hasAtLeastOneEntity { return [self hasAtLeastOneEntityInContext:[NSManagedObjectContext defaultContext]];