能否用EKEventStore以外的存储存储EKEvent?Core Store适配需求
Core Store中存储混合类型日历事件的建模需求
项目背景
我在MacOS Swift项目中使用Core Store,需要基于CoreStoreSchema建模的员工数据,借助WCSP算法实现排班(实际逻辑更复杂,此为基础需求)。
核心需求
希望在Employee表中存储多个日历事件以表示员工的可用时间,且每个事件需关联一个整数值。当前精简后的代码结构如下:
class Employee: CoreStoreObject { @Field.Stored("name") var name: String = "" // 需要存储常规/重复事件的数组 @Field.Stored("timeFrames") var timeFrames: Array<EKEvent> }
需完成的建模内容:
- 同一数组中同时存储常规事件与重复事件
- 支持重复事件的重复属性
- 记录事件的开始与结束时间
- 记录事件日期
排除方案说明
不采用EKEventStore的原因
- 跨存储读取会降低性能,且与Core Store配合会增加逻辑复杂度
- 项目已有自有存储体系,不希望事件同步到用户系统日历
未自行基于Core Store建模日历事件的原因
- 相当于重复实现EventKit的事件逻辑,冗余且低效
- EventKit具备时区处理等难以复刻的便捷特性,自行实现成本过高
内容的提问来源于stack exchange,提问作者Max S.
相关产品推荐
相关产品推荐

