我在 Swift 中使用 Core Store 进行 MacOS 项目,我想将员工(使用 `CoreStoreSchema` 建模)安排到轮班(数学上使用 WCSP)。比这更复杂,但这是基础知识。
我这里有我的员工表,我希望有多个日历事件来表示员工何时有空。我还想为每个事件分配一个 int 值。
class Employee: CoreStoreObject {
@Field.Stored("name")
var name: String = ""
// Here I want to store an array of Normal/Repeating Events
@Field.Stored("timeFrames")
var timeFrames: Array<EkEvent>
}
为了简单起见,我只提供了一个包含减少数据的表
我需要建模:
同一数组中的正常事件和重复事件
重复属性(如果重复)
时间开始和结束
日
我不想使用
EKEventStore
的原因:
这会降低性能(因为它从不同的商店中提取)并使核心商店的事情变得复杂
我已经有一个商店,并且我不希望将事件放在用户的日历上
我没有使用 Core Store 建模自己的日历事件的原因:
我只是重写
EventKit
中的事件
EventKit 具有时区功能和其他难以复制的修道院功能
在您否决这篇文章之前,请注意,我对 Swift 和 StackOverflow 都是新手,而且我不介意反馈。因此,如果我遗漏了一些明显的内容,请告诉我(Apple 的文档并不总是清晰)。
如果您想要完整的表格:PasteBin(请注意它没有附带解释)
假设我理解正确,我认为你不需要 EventKit。 Apple 提供的两个框架用于与他们的日历存储集成(然后将您的事件数据获取到他们的第一方 Calendar.app 中)。 UI 框架允许您将他们的一些事件 UI 用于您自己的应用程序。
但是,如果您有自己的事件和自己的 UI,Apple 会在 EventKit 之外提供时区、日期、日期格式和日历类型支持。