NSPersistentStoreCoordinator CreateCoordinator() { NSUrl url = StoreURL; if (url == null) { return(null); } var psc = new NSPersistentStoreCoordinator(ManagedObjectModel); var keys = new object[] { NSPersistentStoreCoordinator.MigratePersistentStoresAutomaticallyOption, NSPersistentStoreCoordinator.InferMappingModelAutomaticallyOption }; var values = new object[] { true, true }; NSDictionary options = NSDictionary.FromObjectsAndKeys(values, keys); NSError error; NSPersistentStore store = psc.AddPersistentStoreWithType(NSPersistentStoreCoordinator.SQLiteStoreType, null, url, options, out error); if (store == null) { Console.WriteLine(error.Description); return(null); } return(psc); }
/// The managed object context for the view controller (which is bound to the persistent store coordinator for the application). NSManagedObjectContext CreatePrivateQueueContext(out NSError error) { // It uses the same store and model, but a new persistent store coordinator and context. var localCoordinator = new NSPersistentStoreCoordinator(CoreDataStackManager.SharedManager.ManagedObjectModel); NSPersistentStore store = localCoordinator.AddPersistentStoreWithType(NSPersistentStoreCoordinator.SQLiteStoreType, null, CoreDataStackManager.SharedManager.StoreURL, null, out error); if (store == null) { return(null); } var context = new NSManagedObjectContext(NSManagedObjectContextConcurrencyType.PrivateQueue); context.PersistentStoreCoordinator = localCoordinator; context.UndoManager = null; return(context); }