NSCalendarUnit - 修改unitFlags

时间:2013-04-30 16:56:39

标签: iphone ios nscalendar nsdatecomponents nsuinteger

在我的应用中,我想让用户设置日期的显示样式。我考虑过只修改unitFlags来实现这一点。我是说这个

NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit;

但问题是:如何在此整数中添加或删除NSCalendarUnit

我正在使用NSCalendar从日期中获取NSDateComponents

很抱歉,如果这个问题太愚蠢,我的按位操作就不够了:(

1 个答案:

答案 0 :(得分:5)

我不确定这是否是您要找的,但您可以使用该标志添加标记 “按位或”运算符:

unitFlags |= NSYearCalendarUnit;

并使用“按位和”与“按位补码”组合删除标志;

unitFlags &= ~NSYearCalendarUnit;

检查标志:

if ((unitFlags & NSYearCalendarUnit) != 0) {
    // NSYearCalendarUnit is set
} else {
    // NSYearCalendarUnit is not set
}