Added query for performing a unique search; fixed logging macro

This commit is contained in:
Saul Mora
2011-02-03 08:05:39 -07:00
parent 39b3c75379
commit 2bbf4c68f5
3 changed files with 23 additions and 2 deletions

View File

@@ -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

View File

@@ -7,7 +7,7 @@
#import <CoreData/CoreData.h>
#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;

View File

@@ -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]];