Nella mia vista tabella sono presenti celle personalizzate che inizializzo da una classe UITableViewCell. Ho sezioni per le prime lettere di record e ho un indexPath che viene creato dinamicamente.Custom CellIdentifier è null quando si utilizza il controller di ricerca di ricerca
Volevo aggiungere un controller di visualizzazione di ricerca al mio tableview. Così ho fatto, creato tutti i metodi per filtrare i dati. Sono sicuro che le mie funzioni stanno funzionando bene perché sto stampando il numero di array per lo screening dei risultati di ricerca.
Il mio problema è che la prima volta che la visualizzazione viene caricata, i dati sono visualizzati sullo schermo. Ma quando premo l'input di ricerca e digito una lettera, ricevo l'errore 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'
. Dopo aver usato un punto di interruzione, ho visto che la mia cella personalizzata è nulla dopo la ricerca. I dati esistono, ma la cella non viene inizializzata.
ecco il codice che uso per l'inizializzazione di cella personalizzato:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ObjectCell";
SpeakerCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSDictionary *myObject = [[sections valueForKey:[[[sections allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)] objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
cell.label1.text = [myObject objectForKey:@"myValue"];
return cell;
}
Credo ho fatto un errore quando mettere i controlli in IB. Così ho aggiunto le immagini di oggetti:
Connessioni ispettore per la mia vista tabella
Connessioni ispettore per la mia ricerca display controller
EDIT: Problema è in realtà risolto, ho usato d a UISearchBar invece di Search Display Controller ma immagino che questo problema rimanga irrisolto. Quindi sono disposto a provare tutti i modi per farlo funzionare.
Questo potrebbe aver risolto il problema, ma per la maggior parte delle persone il problema è che non creano una nuova cella se non si è già in coda per UITableView. Le risposte sotto più appropriate spiegano come gestirlo. – FilmJ
In realtà, a partire da iOS6, se si utilizza lo storyboard, la cella sarà sempre lì .. – nikravi