NSCalendarUnit - 修改unitFlags

Ran*_*dex 0 iphone nscalendar nsdatecomponents nsuinteger ios

在我的应用程序中,我想让用户设置日期的显示样式.我已经考虑过修改unitFlags以实现这一目标.我是说这个

NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit;
Run Code Online (Sandbox Code Playgroud)

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

我是NSCalendar用来NSDateComponents约会的.

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

Mar*_*n R 5

我不确定这是否是您正在寻找的,但您可以使用"按位或"运算符添加标志:

unitFlags |= NSYearCalendarUnit;
Run Code Online (Sandbox Code Playgroud)

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

unitFlags &= ~NSYearCalendarUnit;
Run Code Online (Sandbox Code Playgroud)

检查标志:

if ((unitFlags & NSYearCalendarUnit) != 0) {
    // NSYearCalendarUnit is set
} else {
    // NSYearCalendarUnit is not set
}
Run Code Online (Sandbox Code Playgroud)