28
28
29
29
@interface NSManagedObjectContext (HKEasyFetchPrivate)
30
30
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 ;
32
32
33
33
@end
34
34
35
35
@implementation NSManagedObjectContext (HKEasyFetch)
36
36
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
38
38
{
39
39
NSEntityDescription *entity = [NSEntityDescription entityForName: entityName inManagedObjectContext: self ];
40
40
NSFetchRequest *request = [[[NSFetchRequest alloc ] init ] autorelease ];
41
41
[request setEntity: entity];
42
-
42
+ [request setFetchLimit: limit];
43
+
43
44
if (stringOrPredicate)
44
45
{
45
46
NSPredicate *predicate;
@@ -69,7 +70,7 @@ - (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(N
69
70
70
71
if (error != nil )
71
72
{
72
- [NSException raise :NSGenericException format: @" %@ " , [error localizedDescription ]];
73
+ [NSException raise :NSGenericException format: @" %@ " , [error description ]];
73
74
}
74
75
75
76
return results;
@@ -79,7 +80,18 @@ - (NSSet *)fetchObjectsForEntityName:(NSString *)entityName withPredicate:(id)st
79
80
{
80
81
va_list arguments;
81
82
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];
83
95
va_end ( arguments );
84
96
85
97
return [NSSet setWithArray: results];
@@ -89,7 +101,18 @@ - (NSArray *)fetchObjectsForEntityName:(NSString *)entityName sortDescriptors:(N
89
101
{
90
102
va_list arguments;
91
103
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];
93
116
va_end ( arguments );
94
117
95
118
return results;
0 commit comments