【发布时间】:2013-03-29 08:44:19
【问题描述】:
我有一个 UITableView,它从 FetchedResultsController 获取一组核心数据对象。 我希望能够使用标准删除按钮从表格视图中删除一个对象,并让表格视图单元格像删除项目时通常那样淡出,但是在我的情况下我不是实际上删除对象但将其标记为已删除。 eg/我有一个属性叫做deleted,所以它仍然存在但看起来被删除了;
obj.deleted = [NSNumber numberWithBool:YES];
有没有这样的方法可以做到这一点,所以它似乎仍然按照标准删除工作?
如果不调用[self.tableView reloadData],我似乎无法做到这一点,所以我失去了标准删除附带的漂亮动画。
我的 tableView 获取结果控制器有一个过滤器,因此 tableView 中的数据被过滤;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"deleted == %@", [NSNumber numberWithBool:NO];
怀疑我需要的代码会放在这里;
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
//
}
}
【问题讨论】:
-
“在核心数据中将其标记为已删除”和“因此它似乎仍然按照标准删除工作”是什么意思?
-
抱歉,很难解释。我有一个名为 deleted 的 BOOL 属性,我想将其设置为
obj.deleted = [NSNumber numberWithBool:YES];,因此获取的结果控制器不会获取它。希望这是有道理的。
标签: ios objective-c uitableview core-data