Skip to content

Instantly share code, notes, and snippets.

@pietrorea
Created June 16, 2014 06:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pietrorea/e307776df1ae2dbffcdb to your computer and use it in GitHub Desktop.
Save pietrorea/e307776df1ae2dbffcdb to your computer and use it in GitHub Desktop.
Simple Core Data stack
import CoreData
class CoreDataManager {
var context:NSManagedObjectContext
var psc:NSPersistentStoreCoordinator
var model:NSManagedObjectModel
var store:NSPersistentStore?
init() {
/* Managed object model */
let modelURL = NSBundle.mainBundle().URLForResource("XYZ", withExtension:"momd")
model = NSManagedObjectModel(contentsOfURL: modelURL)
/* Persistent store coordinator */
psc = NSPersistentStoreCoordinator(managedObjectModel: model)
/* Managed object context */
context = NSManagedObjectContext()
context.persistentStoreCoordinator = psc
/* Persistent store URL */
let fileManager = NSFileManager.defaultManager()
let urls = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) as Array<NSURL>
let storeURL = urls[0].URLByAppendingPathComponent("XYZ.sqlite")
/* Persistent store */
let options = [NSMigratePersistentStoresAutomaticallyOption: true]
var error: NSError? = nil
store = psc.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: storeURL, options: options, error:&error)
if store == nil {
println("Error adding persistent store: \(error), \(error!.userInfo)")
abort()
}
}
func saveContext() {
var error: NSError? = nil
if context.hasChanges && !context.save(&error) {
println("Could not save: \(error), \(error?.userInfo)")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment