コード例 #1
0
        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);
        }
コード例 #2
0
        /// 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);
        }