ios - 使用 unitFlags 创建自定义方法

标签 ios objective-c nsuinteger

我想创建一个采用类似于 Event Kit 的参数“unitFlags”的方法

- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)date.

在前面的方法和下面显示的方法中,unitflags可以设置为多个值

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
NSDate *date = [NSDate date];
NSDateComponents *comps = [gregorian components:unitFlags fromDate:date];

我看到这些方法采用 NSUInteger,但是我如何在我的方法自定义实现中设置单元标志后确定多个值集。

最佳答案

由于 unitFlags 是一个位掩码,您可以检查它是否设置了特定标志,如下所示:

if (unitFlags & NSYearCalendarUnit) { // notice it's & and not &&
    // The "year" flag is set
}
if (unitFlags & NSMonthCalendarUnit) {
    // The "month" flag is set
}

关于ios - 使用 unitFlags 创建自定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16491370/

相关文章:

ios - 显示弹出窗口时设置选项卡栏图标颜色?

iphone - 在 XCode 中获取实例的十六进制地址

objective-c - 函数 'completionHandler' 的隐式声明在 C99 中无效

iphone - plist 到数组 "Collection was mutated while being enumerated"异常

ios - 资源未复制到包

ios - 在IOS中禁用Cortana“任何问题”框

ios - 点击时更改 TableView 高度(在 xib 中使用自动布局)

iphone - 初始化从整数生成指针而不进行强制转换

ios - int 到 NSUINteger 的转换问题

ios - 在比较 NSIndexPath 的行和 NSArray 计数时,是否有更好的方法来避免 'Sign comparison' 警告?