cellForRowAtIndexPath иногда не вызывается после вызова numberOfRowsInSection при вызове reloadData

У меня есть простое приложение, в котором у меня есть табличное представление, и в зависимости от обратного вызова с массивом я перезагружаю данные таблицы, используя метод reloadData . Изначально при первых 5-10 загрузках это табличное представление работает без проблем. Иногда поигравшись с приложением, я заметил, что представление таблицы пустое по той причине, что cellForRowAtIndexPath не вызывается фреймворком. Я проверил, что источник данных и делегат настроен правильно, и numberOfRowsInSection возвращает допустимое положительное число. Как только я вижу пустую таблицу, я могу видеть это пустое представление несколько раз, пока не выйду из приложения. Я не получаю никаких ошибок или предупреждений в консоли. Я попытался настроить массив, но безуспешно.

Вот код:

- (void)notifyArrayLoaded:(NSArray *)arr {
    NSUInteger capacity = [arr count];
    _tbDataArray = [[NSMutableArray alloc] initWithCapacity:capacity];

    // _tbDataArray is filled with the data from arr

    // Reload the table data
    [_tableView reloadData]; 
}

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

Заранее спасибо. Sumit

Hi DeanWombourne, I do not have viewDidUnLoad method but I have viewWillDisAppear method which I am posting it here.

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationPortrait;
    [[UIApplication sharedApplication] setStatusBarHidden:NO animated:NO];
    [self.navigationController setNavigationBarHidden:NO animated:NO];

    UIWindow *window = [[UIApplication sharedApplication] keyWindow];
    UIView *view = [window.subviews objectAtIndex:0];

    view.transform = CGAffineTransformIdentity;
    view.transform = CGAffineTransformMakeRotation(0);
    view.bounds = CGRectMake(0.0, 0.0, 320, 480);
}

This is the logs of tableView as logged.

[numberOfSectionsInTableView:] [Line 223] <UITableView: 0xa5fc00; frame = (0 0; 320 0); clipsToBounds = YES; layer = <CALayer: 0x4830b0>; contentOffset: {0, 0}>
[tableView:numberOfRowsInSection:] [Line 229] <UITableView: 0xa5fc00; frame = (0 0; 320 0); clipsToBounds = YES; layer = <CALayer: 0x4830b0>; contentOffset: {0, 0}>
<UITableView: 0xa5fc00; frame = (0 0; 320 0); clipsToBounds = YES; layer = <CALayer: 0x4830b0>; contentOffset: {0, 0}>
[numberOfSectionsInTableView:] [Line 223] <UITableView: 0xa5fc00; frame = (0 0; 320 0); clipsToBounds = YES; layer = <CALayer: 0x4830b0>; contentOffset: {0, 0}>
[tableView:numberOfRowsInSection:] [Line 229] <UITableView: 0xa5fc00; frame = (0 0; 320 0); clipsToBounds = YES; layer = <CALayer: 0x4830b0>; contentOffset: {0, 0}>
5
задан Girish 8 July 2013 в 06:55
поделиться