如何处理后台任务?

时间:2014-12-15 12:51:27

标签: ios background-task

我是iOS新手。 我正在尝试逐行实现uitableview中的上传数据。 因为我正在使用后台任务。

使用以下代码。

-(void)MethodUploadBgTaskAssign
 {
   dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            NSString *responseString = [self MethodlblUploadClicked];
            dispatch_async(dispatch_get_main_queue(), ^(void)
                           {
                              if([responseString isEqualToString:@"UploadSuccess"])
                               {
                                  [self ReloadTblData];
                                  [self ContinueUploadData];
                               }
                           });
        });
}

-(void) ReloadTblData
 {
    if([dataArr count]>0)
    [dataArr removeObjectAtIndex:0];

     [uitblData reloadData];
  }

 -(void) ContinueUploadData
 {
    if((dataArr count]>0)
    [self  MethodUploadBgTaskAssign];
 }

我的问题是在一些时间表重新加载空数据后在表中上传数据 因为那时上传了所有数据。

我希望在上传表格中的每个单元格后显示更新的ui。

代码中有哪些必要的更改? 感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

它看起来好像你正在更新表 - 但是在错误的线程中(因此表实际上似乎没有更新)。您需要使用performSelectorOnMainThread来更新UI。

[self performSelectorOnMainThread:@selector(ReloadTblData:) // Update the table on the main thread
                       withObject:nil
                    waitUntilDone:NO];

我认为这应该有用 - 试一试!