2014-10-27 11 views
7

La mia app si arresta in modo anomalo dopo aver chiamato il metodo della vista tabella [tableView reloadData]. Ciò si verifica dopo aver eliminato una singola riga di tableview (con comportamento di eliminazione predefinito della visualizzazione tabella) e chiamare [tableView reloadData] e quindi subito dopo questa delegata l'app numberOfSectionsInTableView si arresta in modo anomalo e mostrarmi il messaggio di blocco [UITableViewCell _setDeleteAnimationInProgress : ] : message sent to deallocated instance, ho cercato su Google ma non sono riuscito a ottenere una risposta corretta . Quindi, aiutami gentilmente a scoprire questo problema se qualcuno affronta questo tipo di incidente. Qui sotto c'è il mio codice.App in crash sul metodo reloadData di tableview

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ 
    return 2; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    if(section==0) 
     return [[dbSingleton sharedInstance] get_players_count]; 
    else if(section==1) 
     return 0; 
} 

- (NSString)tableView:(UITableView)tableView titleForHeaderInSection:(NSInteger)section{ 
    if(section==0) 
     return @"Player Detail"; 
    return nil; 
} 

- (UITableViewCellEditingStyle)tableView:(UITableView)tableView editingStyleForRowAtIndexPath:(NSIndexPath)indexPath{ 
    if(indexPath.section==1) 
     return UITableViewCellEditingStyleNone; 
    else 
     return UITableViewCellEditingStyleDelete; 
    } 
} 

-(CGFloat)tableView:(UITableView)tableView heightForRowAtIndexPath:(NSIndexPath)indexPath{ 
    return 44; 
} 

In cerca di risposta. Grazie in anticipo.

+0

Si sta aggiornando l'origine dati? – jsetting32

+0

Si prega di inviare la traccia dello stack completo. –

+2

Direi che [[dbSingleton sharedInstance] get_players_count] non viene aggiornato quando si elimina la riga tramite il metodo delegate tableView. – miya

risposta

12

Infine, ho trovato la soluzione. Quello che stavo facendo è che sto chiamando il metodo reloadData su commitEditingStyle, la sua media di ricaricare i dati prima di cancellare la riga, Come menzionato in risposta a This Thread. Spero che questo aiuti anche gli altri. Grazie per le tue partecipazioni.

-1

[tableView Reload] produce crash quindi è abbastanza sicuro che ci sia un problema nell'origine dati, quindi penso aggiunga il punto di interruzione nella sezione tableview e controlli se stai aggiornando correttamente l'origine dati altrimenti mostri il messaggio di arresto completo.

+0

@answered, Grazie per la risposta, ma ho trovato la soluzione gentilmente guardare nella mia risposta. – josh

Problemi correlati