Skip to content

Instantly share code, notes, and snippets.

@trm36
Forked from jkhowland/Stack.h
Last active August 29, 2015 14:18
Show Gist options
  • Select an option

  • Save trm36/26f01bf66b90d1cc0ab5 to your computer and use it in GitHub Desktop.

Select an option

Save trm36/26f01bf66b90d1cc0ab5 to your computer and use it in GitHub Desktop.
//
// DBStack.m
// Core Data Bank
//
// Created by Joshua Howland on 6/12/14.
// Copyright (c) 2014 DevMountain. All rights reserved.
//
#import "DBStack.h"
@interface DBStack ()
@property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;
@end
@implementation DBStack
- (id)init {
self = [super init];
if (self) {
[self setupManagedObjectContext];
}
return self;
}
- (void)setupManagedObjectContext
{
self.managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
self.managedObjectContext.persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.managedObjectModel];
NSError* error;
[self.managedObjectContext.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:self.storeURL
options:nil
error:&error];
if (error) {
NSLog(@"error: %@", error);
}
self.managedObjectContext.undoManager = [[NSUndoManager alloc] init];
}
- (NSURL*)storeURL
{
NSURL* documentsDirectory = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:NULL];
return [documentsDirectory URLByAppendingPathComponent:@"db.sqlite"];
}
- (NSURL*)modelURL
{
return [[NSBundle mainBundle] URLForResource:@"CoreDataBank" withExtension:@"momd"];
}
- (NSManagedObjectModel*)managedObjectModel
{
return [[NSManagedObjectModel alloc] initWithContentsOfURL:self.modelURL];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment