commitEditingStyle kullanarak UITableView'dan bir satırı sildiğimde, uygulamanız aşağıdaki hata iletisiyle çöküyor. Garip olan şey olsaSatır silme sırasında çökme - Güncelleştirilmeyen bölümdeki tutarsızlık
bölüm 4. dan ben mesaja göre bölüm 3. tutarsızlık gelen siliyorum olduğunu * in Onaylama yetmezliği - [UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-1262.60. 3/UITableView.m: 920 2010-11-22 19: 56: 44.789 bCab [23049: 207] * Yakalanmamış istisna 'NSInternalInconsistencyException' nedeniyle uygulama sonlandırılıyor, nedeni: 'Geçersiz güncelleştirme: bölüm 4'teki geçersiz satır sayısı. Güncelleştirme (1) 'den sonra varolan bir bölümde bulunan satırların sayısı, bu bölümdeki güncelleştirme sayısına (0) eklenecek satır sayısına eşit olmalıdır, artı veya eksi o bölümden eklenen veya silinen satırların sayısı (0 eklenir). , 0 silindi. ' Bir satır bölüm 3'ten silindiğinde
veri kaynağı olarak, ben 3. bölümdeki satır sayısına bağlı olarak bölüm 4 güncellemek, 4. bölümde satır sayısı 0'dan 1'e gider bu soruna neden gibi görünüyor . Bundan kaçınmanın bir yolu yok mu?
Herhangi bir işaretçi çok takdir edilecektir. Teşekkürler.
UPDATE:
numberOfSectionsInTableView - (NSInteger) numberOfSectionsInTableView: (UITableView *) tableView { dönüş 6;
}
numberOfRowsInSection
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
bCabAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
if (section == 0) { // First name, last name
return 2;
}
else if (section == 1) { // Password
return 2;
}
else if (section == 2) { // Mobile, DOB , Gender
return 3;
}
else if (section == 3) { // credit cards
return [creditCards count];
}
else if (section == 4) { // Add credit card
if ([creditCards count] >= 3) {
return 0;
}
else {
return 1;
}
}
else if (section == 5) {
return 0;
}
return 0;
}
commitEditingStyle
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
if (indexPath.section == 3) {
// Delete the row from the data source
NSLog(@"%d %d", indexPath.section, indexPath.row);
[creditCards removeObjectAtIndex:indexPath.row];
// Delete from backend
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
//[tableView reloadData];
}
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
[tableView reloadData] ile aynı sonuçları içeren ve kullanmadan denedim.
Yardım etmeye çalıştığınız için teşekkürler!
Eğer numberOfSectionsInTableView ve tableView gönderebilir miyim? – MathieuF
Satırı kaldırmak için kod gönderebilir misiniz? –