如何在Core Data中存储一周中的几天?

时间:2013-11-08 16:26:02

标签: ios objective-c cocoa-touch core-data

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

你有很多选择。您可以使用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的表。

答案 1 :(得分:2)

bitmask的想法很聪明,但你也可以在工作日拥有一个实体。然后,您创建该实体的7个对象。如果需要,在警报和工作日之间建立关系。这样做的好处是,您可以轻松定义反向关系并查询警报,以便在某个工作日结束。