Ho un UITableView che utilizza un array per elencare i dati. Funziona bene Ho anche un UISearchBar per la ricerca in quella vista tabella. Quando i dati sono abbinati nell'array tableviews, tali righe vengono aggiunte a un altro array mutabile e cellForRowAtIndexPath: visualizza invece i dati da tale array mutabile.numberOfRowsInSection: non chiamato su reloadData
Ma numberOfRowsInSection: non viene mai chiamato quando chiamo reloadData. Quindi la visualizzazione tabella si blocca durante lo scorrimento, perché sta cercando di ottenere dati dall'array mutabile, ma per le righe nell'array originale (che ha più elementi)
Ho eseguito il debug per un po 'di tempo ora, ma non posso perché l'amore di Dio trova le ragioni per questo. L'origine dati e il delegato sono collegati nella vista tabella, in quanto possono mostrare i dati dall'array originale.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"isSearching: %d", isSearching);
// Return the number of rows in the section.
if(!isSearching)
return [originalArray count];
NSLog(@"isSearching - Return searchCopyListOfItems");
return [searchCopyListOfItems count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
if(!searching)
cell.textLabel.text = [originalArray objectAtIndex:indexPath.row];
else
cell.textLabel.text = [searchCopyListOfItems objectAtIndex:indexPath.row];
return cell;
}
Controllare se la tabella ha memoria quando la si sta ricaricando .. –