如果 indexPath 已知,则从 Core Data 中删除条目

Posted

技术标签:

【中文标题】如果 indexPath 已知,则从 Core Data 中删除条目【英文标题】:Remove entry from Core Data if indexPath is known 【发布时间】:2015-11-20 02:18:55 【问题描述】:

我正在尝试删除 UITableView 上的特定条目。我知道该条目的特定索引路径,但我需要先在核心数据中删除该条目。但我不能。这是我正在使用的代码:

AppDelegate * appDelegateMaster = (AppDelegate*)[[UIApplication sharedApplication] delegate];
self.manageObjectContext = appDelegateMaster.managedObjectContext;
                         NSManagedObjectContext *contextObj = self.manageObjectContext;
Messages * entryToDelete = [self.fetchResultController objectAtIndexPath:indexPathToRefresh];
[contextObj deleteObject:entryToDelete]; // delete the entry
NSError *error = nil;
if (![contextObj save:&error]) 

我正在以编程方式删除它,因此 commitEditingStyle 不是问题。这是在 tableview 的代表之外完成的。

【问题讨论】:

您使用的是 FRC 委托方法吗?你有什么错误吗?有什么事吗? 【参考方案1】:

我建议删除模型中的数据,然后使用回调/委托方法在 UI 上运行更新。

具体来说,NSFetchedResultsController 确实可以处理这种情况。如果您想手动执行此操作,请删除该对象并重新加载 tableView(完全或只是已更改的 indexpath/section)

【讨论】:

以上是关于如果 indexPath 已知,则从 Core Data 中删除条目的主要内容,如果未能解决你的问题,请参考以下文章

设连通图G中的边集E=(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c),则从顶点a出发可以

UITableView "cellForRowAt: indexPath" 偶尔在 Core Data 属性上调用 "init?(coder aDecoder: NSCo

如果在“等待”之后抛出,则从任务中抛出的异常被吞下

如果存在则从表中选择,否则从oracle中的另一个表中选择

如果存在与数据中的某些条件匹配的另一行,则从pandas DataFrame中查找行

如果我有一个过滤搜索结果的 UITableView,如何将 ViewDidLoad() 上的 IndexPath 设置为常量,即使在搜索时也是如此