Tengo una aplicación simple donde tengo una vista de tabla & dependiendo de la devolución de llamada con la matriz Recargo los datos de la tabla usando el método reloadData
. Inicialmente durante los primeros 5 a 10 tiempos de carga, esta vista de tabla funciona sin ningún problema. Después de jugar con la aplicación, a veces noté que la vista de tabla está en blanco debido a la razón por la cual el framework no llama a cellForRowAtIndexPath
. He verificado que datasource
& delegate
se ajusta adecuadamente & numberOfRowsInSection
devuelve un número positivo válido. Una vez que veo la vista de tabla en blanco, puedo ver esta vista en blanco repetidamente hasta que salgo de la aplicación. No recibo ningún error o advertencia en la consola. Traté de ajustar la matriz, pero fue en vano.cellForRowAtIndexPath no se llama a veces después de llamar a numberOfRowsInSection al llamar a reloadData
Aquí está el código:
- (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];
}
será muy apreciada Cualquier pista.
Gracias de antemano. Sumit
Hola DeanWombourne, no tengo el método viewDidUnLoad
pero tengo el método viewWillDisAppear
que lo publico aquí.
- (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);
}
Este es el registros de tableView
como conectado.
[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}>
¿Su notificación siempre se ejecuta en el hilo principal? – deanWombourne
¿Cómo maneja las advertencias de memoria/viewDidUnload? ¿Puede agregar ese método a su pregunta? – deanWombourne
¿Puede agregar la línea 'NSLog (@"% @ ", _tableView);' justo antes de volver a cargar los datos, existe la posibilidad de que su tableView sea nulo? – deanWombourne