1

我正在编写一个 iOS 应用程序,我正在使用 Core Data 来存储一系列Event对象(想想生日、圣诞节或会议等)。每个Event对象都有一个与之关联的 date 类型的属性NSDate

在整个程序过程中,我收集了一个 NSDate 对象的 NSArray,我想知道如何删除与这些日期关联的核心数据对象?例如,如果我有一个由日期 11/7 和 12/9 组成的数组,如何删除日期属性为 11/7 或 12/9 的任何 Event 对象?

我想到的一种可能性是Event使用谓词获取所有相应的对象并获取请求,然后转身将它们全部删除;但是,这似乎有点低效。如果我的一个Event对象真的非常大……那会不会花很长时间才能拿到它,只是为了让我可以转身删除它?

我只是想知道是否有更优雅的方式来处理这个......谢谢

4

1 回答 1

1

您可以通过一次 fetch 处理此问题 - 使用IN运算符构造一个谓词,使用您的 NSArray 日期作为集合,执行 fetch 请求(正如 Mike 上面所说,这仍然会相对较快),然后删除对象。有关详细信息,请参阅谓词编程指南中的聚合运算符。

于 2012-07-11T16:26:09.367 回答