Próbuję uzyskać powiesić UITableViews i wszystko, co z tym związane. W tej chwili mam następujący kod:Aplikacja TableView została zakończona z powodu "NSInternalInconsistencyException"
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 10;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
[cell.textLabel setText:[NSString stringWithFormat:@"I am cell %d", indexPath.row]];
return cell;
}
- (IBAction)killItem {
NSIndexPath *indexToDelete = [NSIndexPath indexPathForRow:2 inSection:0];
[tbl deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexToDelete] withRowAnimation:UITableViewRowAnimationRight];
}
I pojawia się następujący błąd podczas inicjowania „killItem” Funkcja:
kończące aplikację spowodowane nieprzechwyconego wyjątku „NSInternalInconsistencyException”, uzasadnienie: „Nieprawidłowy update: niepoprawna liczba wierszy w sekcji 0. Liczba wierszy zawartych w istniejącej sekcji po aktualizacji (10) musi być równa liczbie wierszy zawartych w tej sekcji przed aktualizacją (10), plus lub minus liczba wierszy wiersze wstawione lub usunięte z tej sekcji (0 włożonych, 1 usuniętych). "
Sposób, w jaki go rozumiem TableViews zasadniczo mają delegata i źródło danych, gdzie źródło danych, między innymi, określa, ile wierszy powinno być w tableView. Przez niektóre wyszukiwania tutaj w stackoverflow odkryłem, że ten błąd jest spowodowany, gdy "źródło danych nie pasuje do rzeczywistości", gdy szukają wierszy, które nie istnieją, które usunąłem.
Możliwe, że popełniłem błąd, ale to właśnie robię. Moje pytanie brzmi: jak mogę je dopasować, aby uniknąć tego błędu?
Dla porównania, szukałem w następujących stanowisk bez zrozumienia tego, co trzeba zrobić:
Error : Number of Rows In Section in UITableView in iPhone SDK
Dodawanie [tbl reloadData]
, [tbl beginUpdate] ... [tbl endUpdate]
w killItem funkcja, nie wydaje się pomóc mi w rozwiązaniu problemu.
Dziękuję z góry, Tobias Tovedal
Dziękuję bardzo, że dobrze rozwiązałem mój problem! :RE –