- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 NSBatchDeleteRequest 删除一堆实体,其中许多实体都有删除级联和/或无效规则。
我第一次尝试删除任何内容失败,并且返回的 NSError 包含字符串“批量删除不支持删除规则”。我原以为删除这些东西就可以了,但我有责任在保存之前确保满足所有约束。
我应该能够批量删除这些托管对象吗? (我想保留删除规则,其他删除路径没有简单的方法来知道要删除哪些对象集)在这种情况下某些类型的批量删除有效,但其他类型则无效? (假设谓词失败,但对象 ID 列表有效?)
最佳答案
批量删除存在关系问题。
它直接进入数据库并删除暂停所有对象图规则的记录,包括删除规则。您已正确确定了需要再次自行进行所有约束检查的要求。 (这本身就可能会破坏交易。)
即使您设法正确删除实体和所有必要的相关实体,核心数据在后台创建的(不透明)连接表中仍然会留下大量条目。没有明显的安全方法来删除连接表中的条目,并且据报告它们会干扰将来操作中的关系管理。
IMO,这种情况下的解决方案仍然是使用对象图,而不是批量删除和优化性能。关于如何做到这一点,SOF 有很多很好的答案,但其中大部分可以总结为以下几点:
autoreleasepool
。关于core-data - 我可以在具有删除规则的关系的实体上使用 NSBatchDeleteRequest 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32915874/
我正在编写一个 OS X 应用程序,它需要能够删除其核心数据存储中保存的所有“SongEntity”实例。但是,当我尝试执行 NSBatchDeleteRequest 时,我的应用程序崩溃,控制台输出
我有一个应用程序,它将与服务器同步,其中的数据每天都会更改。在同步期间,我删除了某些实体的所有数据并使用新数据重新加载。我正在使用以下代码: func SyncronizeUserCommen
我对 NSBatchDeleteRequest 有问题,似乎无法删除关系引用。 我有两个实体: 新闻 类别 其中一个类别可以有多个新闻。 现在,当我尝试使用 NSBatchDeleteRequest
我的 CoreData 模型有两个子实体“CarA”和“CarB”,它们具有相同的抽象父实体“Car”。 我正在尝试使用删除所有 CarA 对象 func deleteObjects(enti
我正在阅读 Delete/Reset all entries in Core Data? . 如果我按照以下步骤操作,我会得到意想不到的结果: 调用下面的代码 然后在模拟器中查询一个实体,我会得到一个
在我的应用程序中,当我从网络服务刷新实体的内容时,我删除了核心数据中的所有记录并插入了所有新记录。但是,很多时候记录并没有从上下文中删除,即使我再次调用上下文也是如此。因此,当我保存时,旧的仍然存在,
使用 swift 2.1 和 CoreData,我想删除数据库中的所有数据。 按照下面的方式,效果很好 let context = (UIApplication.sharedApplication()
我有以下代码。 let workorderFetchRequest = NSFetchRequest(entityName: "Workorders") let d
我在 Core Data 中看到过很多关于批量删除的问题,但似乎没有一个能解决我的问题。 我正在使用 Core Data 创建一个 iOS 9/Swift 应用程序。在今年的 WWDC 上,我参加了核
我正在尝试使用 NSBatchDeleteRequest 删除一堆实体,其中许多实体都有删除级联和/或无效规则。 我第一次尝试删除任何内容失败,并且返回的 NSError 包含字符串“批量删除不支持删
NSFetchRequest *request = [Report fetchRequest]; request.predicate = [NSPredicate predicateWithForma
如何使用带有 NSPredicate 的 NSBatchDeleteRequest 从 CoreData 中删除行。 我想删除超过 30 天的记录。 我不想获取内存中的所有数据,而是比较和删除,我想使
我在使用 NSBatchDeleteRequest 后从 NSFetchedResultsControllerDelegate 获取准确更新时遇到问题,更改作为更新类型而不是 didChange 委托
我目前正在对一个与 Core Data 交互的层进行单元测试。它保存、删除和更新 Item目的。但是,我的测试试图保存几个 Item s 然后执行批量删除一直失败。 这是Item : extensio
我有一些执行批量删除请求的核心: extension NSManagedObject: Clearable { /// Clears all objects of this type in c
我遇到了这个问题 'NSBatchDeleteRequest' is only available on iOS 9.0 or newer class func delete(placeId:Int6
所以,将我的代码迁移到 Swift 3 让我有点卡住了。似乎 NSBatchDeleteRequest 现在需要 iOS 10?我可以构建代码的唯一方法是使用以下代码片段: func removeAl
我是一名优秀的程序员,十分优秀!