В моем приложении iOS я использую Core Data для выполнения выборки и удаления очень большого набора данных. Этот процесс занимает приблизительно 5-10 секунд. Я бы хотел сделать откаты, если пользователь решит выключить устройство до завершения процесса. Тем не менее, проблема заключается в том, чтобы ИСПЫТЫЙ экземпляр NSManagedObjectContext вызывал функцию отката из соответствующего метода AppDelegate. В моем приложении, я называю мои методы Ядро данных с помощью объекта Singleton, как это:Нужно получить доступ к тому же экземпляру ManagedObjectContext при выполнении функций отката из AppDelegate в базовых данных
static MySingleton *sharedSingleton = nil;
+ (MySingleton *) sharedInstance {
if (sharedSingleton == nil) {
sharedSingleton = [[super alloc] init];
}
return sharedSingleton;
}
В моем приложении я вернуть экземпляр из NSManagedObjectContext так:
- (NSManagedObjectContext *) managedObjectContext{
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [[NSManagedObjectContext alloc]initWithConcurrencyType:NSMainQueueConcurrencyType];
[_managedObjectContext setPersistentStoreCoordinator:coordinator];
//Undo Support
NSUndoManager *anUndoManager = [[NSUndoManager alloc] init];
[self.managedObjectContext setUndoManager:anUndoManager];
}
return _managedObjectContext;
}
Я тогда называть, и назначить его в качестве ссылки, как это:
NSManagedObjectContext *context = [[MySingleton sharedInstance] managedObjectContext];
Как бы я сделать этот экземпляр ManagedObjectContext доступный мне для использования в AppDelegate, так что я могу перекличку назад функция?
Заранее благодарим всех, кто отвечает.