Skip to content

Commit 7282b90

Browse files
committed
Include fetch limit
1 parent 4c5929d commit 7282b90

File tree

2 files changed

+34
-7
lines changed

2 files changed

+34
-7
lines changed

Common/Categories/NSManagedObjectContext+HKEasyFetch.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,12 @@
2626

2727
@interface NSManagedObjectContext (HKEasyFetch)
2828

29-
- (NSSet *)fetchObjectsForEntityName:(NSString *)newEntityName withPredicate:(id)stringOrPredicate, ...;
29+
- (NSSet *)fetchObjectsForEntityName:(NSString *)entityName withPredicate:(id)stringOrPredicate, ...;
30+
31+
- (NSSet *)fetchObjectsForEntityName:(NSString *)entityName limit:(NSInteger)limit withPredicate:(id)stringOrPredicate, ...;
3032

3133
- (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors withPredicate:(id)stringOrPredicate, ...;
3234

35+
- (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors limit:(NSInteger)limit withPredicate:(id)stringOrPredicate, ...;
36+
3337
@end

Common/Categories/NSManagedObjectContext+HKEasyFetch.m

+29-6
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,19 @@
2828

2929
@interface NSManagedObjectContext (HKEasyFetchPrivate)
3030

31-
- (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors withPredicate:(id)stringOrPredicate arguments:(va_list)arguments;
31+
- (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors limit:(NSInteger)limit withPredicate:(id)stringOrPredicate arguments:(va_list)arguments;
3232

3333
@end
3434

3535
@implementation NSManagedObjectContext (HKEasyFetch)
3636

37-
- (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors withPredicate:(id)stringOrPredicate arguments:(va_list)arguments
37+
- (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors limit:(NSInteger)limit withPredicate:(id)stringOrPredicate arguments:(va_list)arguments
3838
{
3939
NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:self];
4040
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
4141
[request setEntity:entity];
42-
42+
[request setFetchLimit:limit];
43+
4344
if (stringOrPredicate)
4445
{
4546
NSPredicate *predicate;
@@ -69,7 +70,7 @@ - (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(N
6970

7071
if (error != nil)
7172
{
72-
[NSException raise:NSGenericException format:@"%@", [error localizedDescription]];
73+
[NSException raise:NSGenericException format:@"%@", [error description]];
7374
}
7475

7576
return results;
@@ -79,7 +80,18 @@ - (NSSet *)fetchObjectsForEntityName:(NSString *)entityName withPredicate:(id)st
7980
{
8081
va_list arguments;
8182
va_start( arguments, stringOrPredicate );
82-
NSArray *results = [self fetchObjectsForEntityName:entityName sortDescriptors:nil withPredicate:stringOrPredicate arguments:arguments];
83+
NSArray *results = [self fetchObjectsForEntityName:entityName sortDescriptors:nil limit:0 withPredicate:stringOrPredicate arguments:arguments];
84+
va_end( arguments );
85+
86+
return [NSSet setWithArray:results];
87+
}
88+
89+
90+
- (NSSet *)fetchObjectsForEntityName:(NSString *)entityName limit:(NSInteger)limit withPredicate:(id)stringOrPredicate, ...
91+
{
92+
va_list arguments;
93+
va_start( arguments, stringOrPredicate );
94+
NSArray *results = [self fetchObjectsForEntityName:entityName sortDescriptors:nil limit:limit withPredicate:stringOrPredicate arguments:arguments];
8395
va_end( arguments );
8496

8597
return [NSSet setWithArray:results];
@@ -89,7 +101,18 @@ - (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(N
89101
{
90102
va_list arguments;
91103
va_start( arguments, stringOrPredicate );
92-
NSArray *results = [self fetchObjectsForEntityName:entityName sortDescriptors:sortDescriptors withPredicate:stringOrPredicate arguments:arguments];
104+
NSArray *results = [self fetchObjectsForEntityName:entityName sortDescriptors:sortDescriptors limit:0 withPredicate:stringOrPredicate arguments:arguments];
105+
va_end( arguments );
106+
107+
return results;
108+
}
109+
110+
111+
- (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors limit:(NSInteger)limit withPredicate:(id)stringOrPredicate, ...
112+
{
113+
va_list arguments;
114+
va_start( arguments, stringOrPredicate );
115+
NSArray *results = [self fetchObjectsForEntityName:entityName sortDescriptors:sortDescriptors limit:limit withPredicate:stringOrPredicate arguments:arguments];
93116
va_end( arguments );
94117

95118
return results;

0 commit comments

Comments
 (0)