2014-12-15 3 views
1

Я новичок в 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 после загрузки каждой ячейки в таблице.

Что необходимо для изменения кода? ценят за помощью.

+0

Вы пытаетесь реализовать ленивую загрузку? –

+0

нет. Я пытаюсь загрузить данные в каждую ячейку после загрузки данных в первую ячейку. Удалите эту ячейку и покажите обновленный интерфейс, а затем загрузите данные первой строки, которые продолжаются до завершения всех данных строки. –

+0

Вы реализовали этот метод в ячейке или контроллере? –

ответ

0

Он выглядит так, как будто вы обновляете таблицу, но в неправильном потоке (следовательно, таблица никогда не обновляется). Для обновления пользовательского интерфейса вам необходимо использовать performSelectorOnMainThread.

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

Я думаю, что это должно сработать - дайте ему уйти!