До сих пор удаленная очистка работает, но у меня возникают проблемы с созданием резервной копии в фоновом режиме. Удаленная очистка также работает в фоновом режиме. Я пытаюсь вызвать метод startBackgroundBackupActivity
из моего класса locationHandler
, который работает в фоновом режиме.Метод вызова из другого класса Цель-c
BackgroundBackupHandler.m
- (void) OnSyncComplete:(NSNumber*)result message:(NSString *)message{
NSLog(@"-(void)OnSyncComplete:%@ message=%@",result, message);
//jxxtodo: Ensure all existing objects are reset, including DB and network connections
if (0 == [result intValue]){
NSString *strMsg = [ErrorHandler getErrorTextByErrorNumber:SYNC_SUCCESS_INF withObjects:nil];
[self logEvent:strMsg];
}else if (2 == [result intValue]){//no sync required
NSString *strMsg = [ErrorHandler getErrorTextByErrorNumber:NO_NEED_SYNC_INF withObjects:nil];
[self logEvent:strMsg];
}else if (3 == [result intValue]) {
NSString *strMsg = [ErrorHandler getErrorTextByErrorNumber:SYNC_RESET_EMPTY_INF withObjects:nil];
[self logEvent:strMsg];
} else{
NSString *strMsg = [ErrorHandler getErrorTextByErrorNumber:SYNC_COMMON_ERR withObjects:nil];
[self logEvent:strMsg];
return;
}
[m_pSyncController release];
m_pSyncController = nil;
self.m_backupSet = nil;
[self performSelector:@selector(startBackgroundBackupActivity) withObject:nil afterDelay:1.5];
}
Прямо сейчас, OnSyncComplete:message:
что вызывает startBackupActcitivy
внутри BackgroundBackupHandler
класса.
У меня есть еще один класс LocationHandler
, который проверяет флаг, отправленный с сервера, и делает что-то на основе флага. Поэтому, если флаг установлен на резервную копию, затем протрите его, он запустит резервную копию, затем вытрите устройство.
Как мне позвонить OnSyncComplete:message:
из категории LocationHandler
.
Ive пытался:
BackgroundBackupHandler *bgBackup = [[BackgroundBackupHandler alloc]init];
[bgBackup OnSyncComplete:[NSNumber numberWithInt:3] message:nil];
Это дает мне ошибки и прекращение моего приложения. Есть ли вообще позвонить startBackgroundBackupActivity
из LocationHandlerClass
.
Ошибка в том, что приложение разбилось и прерывалось. NSInvalidArgumentException, где nil не является законным NSManagedObjectContext. МестоположениеHandler запустит фоновое задание, которое затем синхронизирует устройство и возвращает управление методу OnSyncComplete в классе LocationHandler, который затем, в свою очередь, вызывает OnSyncComplete в классе BackgroundBackupHandler.
Какая ошибка у вас? – Larme
@ Larme i обновленный вопрос выше. – 3rdeye7
Вы объявляете метод 'OnSyncComplete: message:', но вы вызываете 'onSyncComplete: message:' (в другом случае). В Objective-C имена методов должны быть 'lowerCamelCase'. Вы также должны избегать использования 'get' в имени метода, поскольку обычно это означает, что вызывающий должен предоставить буфер. – dreamlax