Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @interface CoreData ()
- + (NSURL *)coreServiceDirectory;
- + (NSManagedObjectModel *)model;
- + (NSPersistentStoreCoordinator *)coordinator;
- + (NSManagedObjectContext *)context;
- + (NSMutableSet *)coreDataErrors;
- @end
- @implementation CoreData
- #pragma mark Initialization
- static NSManagedObjectModel *s_objectModel = nil;
- static NSPersistentStoreCoordinator *s_coordinator = nil;
- static NSManagedObjectContext *s_context = nil;
- static NSMutableSet *s_errors = nil;
- + (void)initialize {
- s_errors = [[NSMutableSet alloc] initWithCapacity:5];
- NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"my_coreDataModel" withExtension:@"momd"];
- s_objectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
- s_coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:s_objectModel];
- NSError *storeError = nil;
- [s_coordinator addPersistentStoreWithType:NSSQLiteStoreType
- configuration:nil
- URL:[[CoreData coreServiceDirectory] URLByAppendingPathComponent:@"coredata.sqlite"]
- options:nil
- error:&storeError];
- if (storeError) {
- [s_errors addObject:storeError];
- }
- s_context = [[NSManagedObjectContext alloc] init];
- [s_context setPersistentStoreCoordinator:s_coordinator];
- }
- #pragma mark Class Methods
- + (NSURL *)coreServiceDirectory {
- return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
- }
- + (NSManagedObjectModel *)model {
- return s_objectModel;
- }
- + (NSPersistentStoreCoordinator *)coordinator {
- return s_coordinator;
- }
- + (NSManagedObjectContext *)context {
- return s_context;
- }
- + (NSMutableSet *)coreDataErrors {
- return s_errors;
- }
- #pragma mark Life Cycle
- - (id)init {
- if (self = [super init]) {
- self.context = [CoreData context];
- self.coordinator = [CoreData coordinator];
- self.objectModel = [CoreData model];
- }
- return self;
- }
- - (void)dealloc {
- self.context = nil;
- self.coordinator = nil;
- self.objectModel = nil;
- [super dealloc];
- }
- #pragma mark Synthesizer
- @synthesize objectModel, context, coordinator;
- @end
Add Comment
Please, Sign In to add comment