Tôi đang cố gắng để có được hang của UITableViews và tất cả mọi thứ đi kèm với nó. Tại thời điểm này tôi có đoạn mã sau:Ứng dụng TableView bị chấm dứt do '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];
}
Và tôi nhận được lỗi sau khi khởi sự "killItem" chức năng:
Chấm dứt ứng dụng do ngoại lệ còn tự do 'NSInternalInconsistencyException', lý do: 'không hợp lệ cập nhật: số hàng không hợp lệ trong phần 0. Số hàng có trong phần hiện có sau khi cập nhật (10) phải bằng số hàng có trong phần đó trước bản cập nhật (10), cộng hoặc trừ số các hàng được chèn hoặc xóa khỏi phần đó (0 đã chèn, 1 đã bị xóa). '
Cách tôi hiểu bảng tableViews về cơ bản có một đại biểu và nguồn dữ liệu nơi nguồn dữ liệu, trong số những thứ khác, xác định số lượng hàng sẽ nằm trong tableView. Thông qua một số tìm kiếm ở đây tại stackoverflow Tôi đã tìm thấy rằng lỗi này được gây ra khi "nguồn dữ liệu không khớp với thực tế", khi nó tìm kiếm các hàng không tồn tại, mà tôi đã xóa.
Tôi có thể đã nhận được điều này sai nhưng đó là những gì tôi nghĩ là làm điều đó. Vì vậy, câu hỏi của tôi là, làm thế nào để tôi có được những điều này để phù hợp để tôi có thể tránh được lỗi này?
Để tham khảo, tôi đã nhìn vào bài viết sau đây mà không hiểu những gì tôi cần phải làm:
Error : Number of Rows In Section in UITableView in iPhone SDK
Thêm [tbl reloadData]
, [tbl beginUpdate] ... [tbl endUpdate]
trong killItem chức năng, doesen't dường như giúp đỡ vấn đề của tôi eighter.
Cảm ơn bạn trước, Tobias Tovedal
Cảm ơn bạn rất nhiều, đã giải quyết được vấn đề của tôi một cách độc đáo! : D –