Celda para fila en ruta de índice solo se llama una vez

Estoy parsing un json de datos y en que uno del campo es una matriz si tiene un contenido. Pero si no tiene contenido es simplemente una cadena "Sin resultado". Estoy usando el siguiente código para analizarlo:

-(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:YES]; //URL is called. if ([status isEqualToString:@"success"]) { if ([[[json objectForKey:@"Items"] objectForKey:@"item_list"] isKindOfClass:[NSString class]]) { _Label.text = [NSString stringWithFormat:@"0"]; ItemsArray = [[NSMutableArray alloc]init]; } else { ItemsArray = [[json objectForKey:@"Items"] objectForKey:@"item_list"]; NSLog(@"%d",[ItemsArray count]); float Amount = 0; NSLog(@"%d",[ItemsArray count]); if ([ItemsArray count]>0) { for (int i=0; i<[ItemsArray count]; i++) { NSMutableDictionary * temp3 = [ItemsArray objectAtIndex: i]; NSString * x = [temp3 objectForKey:@"final"]; Amount = Amount + [x floatValue]; } Label.text = [NSString stringWithFormat:@"%.2f",BidAmount]; } else { Label.text = [NSString stringWithFormat:@"0"]; } } [TableViewOutlet reloadData]; 

}

Esto funciona bien.

Cuando el campo devuelve una cadena, no tengo ningún problema. Pero cuando el campo es una matriz, estoy atascado. Después de ejecutar el proyecto por primera vez, funciona bien incluso si el recuento de matrices es mayor que 0. Pero a partir de la segunda vez, el método Cellforrowatindexpath no se invoca incluso cuando el recuento de matrices es mayor que 0 … Estos son mis códigos:

 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { return 1; } -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { NSLog(@"%d",[ItemsArray count]); return [ItemsArray count]; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"TableViewCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; if (cell==nil) { cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } cell.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.025]; NSDictionary *temp = [ItemsArray objectAtIndex:indexPath.row]; UILabel *ItemName = (UILabel *)[cell viewWithTag:1000]; ItemName.text = [temp objectForKey:@"title"]; UILabel *Cost = (UILabel *)[cell viewWithTag:1001]; Cost.text = [temp objectForKey:@"final"]; return cell; } 

Alguien por favor ayúdame

Creo que el problema es que no has retenido tu ItemArray.

 NSArray* array = [[json objectForKey:@"Items"] objectForKey:@"item_list"]; ItemsArray = [NSMutableArray alloc]]initWithArray:array]; 

Use este fragment de código … Espero que funcione.