如何在 Core Data 中存储星期几?

Posted

技术标签:

【中文标题】如何在 Core Data 中存储星期几?【英文标题】:How to store days of the week in Core Data? 【发布时间】:2013-11-08 16:26:01 【问题描述】:

我正在开发一个使用警报来通知用户事件的应用程序,我需要让用户选择应该应用警报的日期。 为此,我为用户提供了 7 个复选框(每天一个),并且我已经确定这些复选框将链接到布尔值,但是我无法确定这些应该如何存储。

我正在使用核心数据来存储这些警报。我原以为我可以使用数组,但是核心数据不允许我在数据模型中存储数组。

有什么想法吗?

【问题讨论】:

【参考方案1】:

您有很多选择。您可以使用 7 位位域掩码,例如:

BOOL monday, tuesday, wednesday, thursday, friday, saturday, sunday;
int bitmask = 0;
bitmask |= monday << 0;
bitmask |= tuesday << 1;
bitmask |= wednesday << 2;
bitmask |= thursday << 3;
bitmask |= friday << 4;
bitmask |= saturday << 5;
bitmask |= sunday << 6;

或者您可以只存储一个包含 7 个 BOOL 的表。

【讨论】:

【参考方案2】:

位掩码的想法非常聪明,但您也可以在工作日拥有一个实体。然后创建该实体的 7 个对象。如果需要,请在您的闹钟和那些工作日之间建立关系。这样做的好处是您可以定义反向关系并轻松查询在某个工作日响起的警报。

【讨论】:

以上是关于如何在 Core Data 中存储星期几?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Core Data 中存储 CLPlacemark 地址数据

如何将 NSMutableString 转换为 double 以存储在 Core Data 中?

如何将 NSMutable 数组中的数据存储在 Core Data 中?

如何将 Twitter ID 存储在 Core Data 对象中

如何将 MKMapItem 转换为二进制数据以存储在 Core Data 中?

如何在 Core Data(例如 NSRect)中存储非标准的持久属性?