从另一个类目标调用方法-c

时间:2015-11-02 21:15:50

标签: ios objective-c

到目前为止,远程擦除工作正常,但我在后台启动备份时遇到问题。远程擦除也可以在后台运行。我正在尝试从后台运行的startBackgroundBackupActivity类调用locationHandler方法。

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

我试过了:

BackgroundBackupHandler *bgBackup = [[BackgroundBackupHandler alloc]init];
[bgBackup OnSyncComplete:[NSNumber numberWithInt:3] message:nil];

这给了我错误并终止了我的申请。无论如何都要从startBackgroundBackupActivity拨打LocationHandlerClass

错误是应用程序崩溃并中止。 NSInvalidArgumentException,其中nil不是合法的NSManagedObjectContext。 locationHandler将启动后台任务,然后该任务将同步设备并将控制返回到LocationHandler类中的OnSyncComplete方法,然后该方法又调用BackgroundBackupHandler类中的OnSyncComplete。

1 个答案:

答案 0 :(得分:-1)

在对象之间创建通信的两种方法是: 1)代表团 2)通知

在您的情况下,似乎通知可以更好地工作。 看看这个