我正在使用CoreData + UITableView處理待辦事項列表應用程序,我想隱藏用戶標記爲已完成的行。隱藏UITableViewCell的特定行
我當前的解決方案是在用戶標記任務完成時調用deleteRowsAtIndexPaths,並從numberOfRowsInSection的函數中扣除刪除的行。
-(void)markDone:(NSIndexPath *) _indexPath{
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:_indexPath] withRowAnimation:UITableViewRowAnimationFade];
deletedCount = deletedCount + 1;
[self.tableView endUpdates];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
if (deletedCount>0) {
return [sectionInfo numberOfObjects]-deletedCount;
}
return [sectionInfo numberOfObjects];
}
這種方法雖然沒有工作,但我確實需要一些代碼在這裏,有黑客。有沒有辦法調用NSFetchedResultsController didChangeObject改變特定字段的狀態?
謝謝
對我來說似乎是正確的,您是否考慮過使用兩個列表來處理您的數據,一個是針對所有人的,一個是針對尚未標記爲已完成的數據? – ThomasRS 2011-05-05 16:42:36
寧願單個列表。我不太確定如何在覈心數據中使用兩個列表。大聲笑。 – TonyTakeshi 2011-05-05 17:32:25