-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathNSManagedObjectContext+Fetch.m
94 lines (63 loc) · 2.43 KB
/
NSManagedObjectContext+Fetch.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//
// NSManagedObjectContext+Fetch.m
// Sub
//
// Created by nark on 15/05/11.
// Copyright 2011 Read-Write.fr. All rights reserved.
//
#import "NSManagedObjectContext+Fetch.h"
@implementation NSManagedObjectContext (Fetch)
- (NSArray *)fetchEntitiesNammed:(NSString *)name withPredicate:(NSPredicate *)predicate error:(NSError **)error {
//NSError *error = nil;
NSArray *ret = nil;
@synchronized(self) {
NSFetchRequest *request;
NSEntityDescription *desc;
desc = [NSEntityDescription entityForName:name inManagedObjectContext:self];
request = [[NSFetchRequest alloc] init];
[request setEntity:desc];
if(predicate)
[request setPredicate:predicate];
ret = [self executeFetchRequest:request error:error];
[request release];
}
return ret;
}
- (NSArray *)fetchEntitiesNammed:(NSString *)name withPredicate:(NSPredicate *)predicate descriptor:(NSSortDescriptor *)descriptor limit:(NSInteger)limit error:(NSError **)error {
//NSError *error = nil;
NSArray *ret = nil;
@synchronized(self) {
NSFetchRequest *request;
NSEntityDescription *desc;
desc = [NSEntityDescription entityForName:name inManagedObjectContext:self];
request = [[NSFetchRequest alloc] init];
[request setFetchLimit:limit];
[request setSortDescriptors:[NSArray arrayWithObject:descriptor]];
[request setEntity:desc];
if(predicate)
[request setPredicate:predicate];
ret = [self executeFetchRequest:request error:error];
[request release];
}
return ret;
}
- (id)fetchEntityNammed:(NSString *)name withPredicate:(NSPredicate *)predicate error:(NSError **)error {
id ret = nil;
@synchronized(self) {
NSArray *entities = nil;
NSFetchRequest *request;
NSEntityDescription *desc;
desc = [NSEntityDescription entityForName:name inManagedObjectContext:self];
request = [[NSFetchRequest alloc] init];
[request setEntity:desc];
if(predicate)
[request setPredicate:predicate];
entities = [self executeFetchRequest:request error:error];
[request release];
if(entities && [entities count] > 0) {
ret = [entities objectAtIndex:0];
}
}
return ret;
}
@end