как отобразить данные в табличном представлении IOS при использовании RestKit - PullRequest
0 голосов
/ 13 марта 2012

Я разрабатываю приложение в IOS, используя RestKit . Данные получены успешно, но я не могу отобразить их в представлении таблицы (то есть строки пусты). когда я прокручиваю таблицу, строки отображаются правильно (то есть данные есть !!).

Вы получите лучшую идею из кода. (Для простоты я представил приблизительный набросок кода, дайте мне знать, если потребуется больше кода).

TableViewController.m

- (void)viewDidLoad
{   
    NSLog(@"viewDidLoad_inside!!");
    RKRequest* request = [[RKClient sharedClient] get:@"/urlstring" delegate:self];
    [request send];
    NSLog(@"request is sent");
    [super viewDidLoad];
} 

- (void)requestDidStartLoad:(RKRequest *)request {
       NSLog(@"request did start Load");
}

- (void)request:(RKRequest *)request didLoadResponse:(RKResponse *)response {
         NSLog(@"request didLoadResponse");
......
  //rest of the code Logic
...... 

}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"table_inside!!");
}

код выполняется успешно, но строки таблицы пусты. !!

Выход:

viewDidLoad_inside !!

запрос запущен Загрузить

запрос отправлен

table_inside

запрос didLoadResponse

Так что проблема в том, что методы не выполняются в правильном порядке. почему это происходит? Как это решить. Есть ли лучший подход для этого. Я новичок в IOS, поэтому не могу понять.

Я попробовал ответ Питера Келли, и это прекрасно работает. Но метод tableView не должен выполняться до тех пор, пока записи не будут успешно получены. Как изменить последовательность выполнения.

Любая помощь будет принята с благодарностью.

1 Ответ

3 голосов
/ 13 марта 2012

Вы перезагрузили свой tableView после того, как у вас есть все данные?

[self.tableView reloadData];
...