Ios 如何从筛选的UITableView中删除项目,而不实际删除它?

Ios 如何从筛选的UITableView中删除项目,而不实际删除它?,ios,objective-c,uitableview,core-data,Ios,Objective C,Uitableview,Core Data,我有一个UITableView,它从FetchedResultsController获取核心数据对象数组。 我希望能够使用标准的“删除”按钮从表视图中删除对象,并使“表视图”单元格淡出,就像删除项目时通常所做的那样,但是在我的情况下,我不是实际删除对象,而是将其标记为已删除。例如,我有一个名为“已删除”的属性,因此它仍然存在,但似乎已删除 obj.deleted = [NSNumber numberWithBool:YES]; 是否有这样一种方法可以做到这一点,使其看起来仍然按照标准删除方式工

我有一个UITableView,它从FetchedResultsController获取核心数据对象数组。 我希望能够使用标准的“删除”按钮从表视图中删除对象,并使“表视图”单元格淡出,就像删除项目时通常所做的那样,但是在我的情况下,我不是实际删除对象,而是将其标记为已删除。例如,我有一个名为“已删除”的属性,因此它仍然存在,但似乎已删除

obj.deleted = [NSNumber numberWithBool:YES];
是否有这样一种方法可以做到这一点,使其看起来仍然按照标准删除方式工作

如果不调用
[self.tableView reloadData]
我似乎无法做到这一点,因此我失去了标准delete附带的漂亮动画

My tableView fetched results controller有一个过滤器,以便过滤tableView中的数据

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"deleted == %@", [NSNumber numberWithBool:NO];
我怀疑我需要的代码会在这里出现

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        //
    }
}

NSManagedObject
已经删除了一个方法
isDeleted
,因此一个自定义属性
deleted
可能会干扰该方法。您可以向实体添加属性
不可见
,并检查

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"invisible == %@", [NSNumber numberWithBool:NO];
在“获取结果”控制器中。如果你设定

obj.invisible = [NSNumber numberWithBool:YES];

应该从表视图中删除该对象。(您可能必须保存上下文,我现在不是100%确定。)

您所说的“在核心数据中将其标记为已删除”和“因此它似乎仍然按照标准删除方式工作”是什么意思?很抱歉,很难解释。我有一个名为deleted的BOOL属性,我希望将其设置为
obj.deleted=[NSNumber numberWithBool:YES]
因此获取的结果控制器不会获取它。希望这是有道理的,搞定了。甚至不需要保存上下文。刚分配的
obj.invisible=[NSNumber numberWithBool:YES]并淡出,就好像它正在被删除一样。谢谢