我认为 NSDeleteRequest 类不存在,但我希望它存在。
我可以创建一个 NSPredicate 并使用 NSFetchRequest 来发出:
从 foo 中选择 *,其中 x=y
我如何发出:
从 foo 中删除 x=y
?
删除 1000 行的唯一方法似乎是获取它们,循环遍历它们,并在每个 NSManagedObject 上调用删除。是对的吗?为什么我不能只发出 1 个删除 sql 语句?
最佳答案
您必须获取托管对象,然后将 -deleteObject:
发送到要删除的每个对象的上下文。
必须将对象提取到内存中,以便 Core Data 能够遵守关系上指定的级联或无效规则。
如果您在删除时遇到特定的性能问题(超出所需的提取),那么在 Instruments 中分析操作会很有帮助。如果您在应用级联/无效规则时单独触发错误,则预取相关对象将提高性能。
关于objective-c - 有没有办法使用 NSPredicate 来发出 NSDeleteRequest 与 Core Data 中的 NSFetchRequest ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263402/