2015-11-02 3 views
0

До сих пор удаленная очистка работает, но у меня возникают проблемы с созданием резервной копии в фоновом режиме. Удаленная очистка также работает в фоновом режиме. Я пытаюсь вызвать метод 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.

+0

Какая ошибка у вас? – Larme

+0

@ Larme i обновленный вопрос выше. – 3rdeye7

+1

Вы объявляете метод 'OnSyncComplete: message:', но вы вызываете 'onSyncComplete: message:' (в другом случае). В Objective-C имена методов должны быть 'lowerCamelCase'. Вы также должны избегать использования 'get' в имени метода, поскольку обычно это означает, что вызывающий должен предоставить буфер. – dreamlax

ответ

-1

2 способа создания связи между объектом являются: 1) делегации 2) уведомления

В вашем случае это, кажется, как уведомление может работать лучше. Проверьте это

Смежные вопросы