EKEvents 可以使用其他存储(除了 EKEventStore 之外)存储吗?

问题描述 投票:0回答:1

我在 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>
    }

为了简单起见,我只提供了一个包含减少数据的表


我需要建模:

  1. 同一数组中的正常事件和重复事件

  2. 重复属性(如果重复)

  3. 时间开始和结束

我不想使用

EKEventStore
的原因:

  1. 这会降低性能(因为它从不同的商店中提取)并使核心商店的事情变得复杂

  2. 我已经有一个商店,并且我不希望将事件放在用户的日历上

我没有使用 Core Store 建模自己的日历事件的原因:

  1. 我只是重写

    EventKit

    中的事件
  2. EventKit 具有时区功能和其他难以复制的修道院功能

在您否决这篇文章之前,请注意,我对 Swift 和 StackOverflow 都是新手,而且我不介意反馈。因此,如果我遗漏了一些明显的内容,请告诉我(Apple 的文档并不总是清晰)。

如果您想要完整的表格:PasteBin(请注意它没有附带解释)

swift macos nscalendar eventkit corestore
1个回答
0
投票

假设我理解正确,我认为你不需要 EventKit。 Apple 提供的两个框架用于与他们的日历存储集成(然后将您的事件数据获取到他们的第一方 Calendar.app 中)。 UI 框架允许您将他们的一些事件 UI 用于您自己的应用程序。

但是,如果您有自己的事件和自己的 UI,Apple 会在 EventKit 之外提供时区、日期、日期格式和日历类型支持。

© www.soinside.com 2019 - 2024. All rights reserved.