【发布时间】:2012-10-09 05:54:59
【问题描述】:
我正在开发一个带有 Core Data 的 iOS 应用程序,用于跟踪培训课程的安排和相关数据。我的模型(SIMCourse)有两个属性 - startDate 和 endDate 是 NSDate 对象。到现在为止还挺好。
我现在正在努力添加一项功能,以防止同时安排两门课程。因此,当我创建一个新的 SIMCourse 时,我想检查它的日期范围是否与任何其他现有 SIMCourse 的日期范围重叠。换句话说,如果我的新课程在 1 月 1 日至 3 日开课,而我现有的课程在 1 月 2 日至 4 日开课,那显然是冲突。
我知道我可以获取数据存储中的所有 SIMCourse 对象并遍历它们,但我完全不相信这是最好的方法。谁能帮我指出正确的方向?
【问题讨论】:
-
我无权获得正确的语法,但听起来你只想要一个 NSPredicate 对象与 ((endDate > newStartDate and startDate newEndDate) 或 (startDate newEndDate))。为了不那么冗长,您还可以选择所有不符合 (endDate newEndDate) 的对象,但这需要一些改进。
-
Martin,您的回答正是我所需要的。非常感谢!