我需要你的幫助:(錯誤而刪除從我的UITableView一節
我工作的一個iPhone應用程序中,我不得不刪除在一個UITableView一些行和部分。
我上的Xcode 4
我我的tableView與NSArray的和字典相關聯,就像這樣:
NSMutableArray *arrTemp1 = [[NSMutableArray alloc]
initWithObjects:@"Chris",nil];
NSMutableArray *arrTemp2 = [[NSMutableArray alloc]
initWithObjects:@"Bianca",nil];
NSMutableArray *arrTemp3 = [[NSMutableArray alloc]
initWithObjects:@"Candice",@"Clint",@"Chris",nil];
NSMutableArray *arrTemp4 = [[NSMutableArray alloc]
initWithObjects:@"Candice",@"Clint",@"Chris",nil];
NSMutableArray *arrTemp5 = [[NSMutableArray alloc]
initWithObjects:@"Candice",@"Clint",@"Chris",nil];
NSMutableArray *arrTemp6 = [[NSMutableArray alloc]
initWithObjects:@"Candice",@"Clint",@"Chris",nil];
NSMutableDictionary *temp = [[NSMutableDictionary alloc]
initWithObjectsAndKeys:arrTemp1,@"A",arrTemp2,
@"B",arrTemp3,@"C",arrTemp4, @"D", arrTemp5, @"E", arrTemp6, @"J",nil];
self.tableContents = temp;
self.sortedKeys =[[self.tableContents allKeys]
sortedArrayUsingSelector:@selector(compare:)];
當我需要刪除的行或我使用這個代碼sectionm - >
(void)tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
NSMutableArray *listData = [self.tableContents objectForKey:
[self.sortedKeys objectAtIndex:[indexPath section]]];
NSUInteger row = [indexPath row];
[listData removeObjectAtIndex:row];
[tableView beginUpdates];
if ([listData count] > 0)
{
// Section is not yet empty, so delete only the current row.
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
}
else
{
// Section is now completely empty, so delete the entire section.
[tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section]
withRowAnimation:UITableViewRowAnimationFade];
}
[tableView endUpdates];
}
}
當我刪除行,它的工作原理以及.. 當我刪除的部分,我發現了以下錯誤: 「*在斷言失敗 - [UITableView的_endCellAnimationsWithContext:]/SourceCache/UIKit/UIKit-1912.3/UITableView.m:1030 2012-01-13 16:42:45.261 *終止應用程序由於未捕獲的異常'NSInternalInconsistencyException',原因:'無效的更新:節數無效。更新後的表視圖中包含的節數(6)必須等於更新前的表視圖中包含的節數(6),加上或減去插入或刪除的節數(0插入,1刪除)。'」
(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [tableContents count]; // tableContent is a NSMUtableDictionnary*
}
- (NSInteger)tableView:(UITableView *)table
numberOfRowsInSection:(NSInteger)section
{
NSArray *listData =[self.tableContents objectForKey:
[self.sortedKeys objectAtIndex:section]];
return [listData count];
}
我越來越瘋狂,並即將在計算器上尋求幫助......
(對不起,我的英文不好:()
感謝大家閱讀並回答!!
也許你需要刪除th e行在刪除部分之前?胡亂猜測。 – ksol 2012-01-13 15:55:31
我已經試過了。和以前的錯誤是一樣的,但這一次,它說,行數改變 – user1147981 2012-01-13 16:00:39