gpt4 book ai didi

iphone:如何像 NSCalendar 一样混合枚举

转载 作者:行者123 更新时间:2023-11-30 16:04:03 28 4
gpt4 key购买 nike

我刚刚查看了 NSCalendar.h 中的代码,如下所示:

enum {
NSEraCalendarUnit = kCFCalendarUnitEra,
NSYearCalendarUnit = kCFCalendarUnitYear,
NSMonthCalendarUnit = kCFCalendarUnitMonth,
NSDayCalendarUnit = kCFCalendarUnitDay,
NSHourCalendarUnit = kCFCalendarUnitHour,
NSMinuteCalendarUnit = kCFCalendarUnitMinute,
NSSecondCalendarUnit = kCFCalendarUnitSecond,
NSWeekCalendarUnit = kCFCalendarUnitWeek,
NSWeekdayCalendarUnit = kCFCalendarUnitWeekday,
NSWeekdayOrdinalCalendarUnit = kCFCalendarUnitWeekdayOrdinal,
};
typedef NSUInteger NSCalendarUnit;

在客户端代码中,我可以调用类似的内容:

NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *dateComponents = [calendar components:unitFlags
fromDate:self
toDate:[NSDate date]
options:0];

我不太明白这段代码的工作原理。

他们如何定义一个匿名枚举,然后将 NSCalendarUnit 的类型定义为 NSUInteger。它们如何在 NSCalendarUnit 和匿名枚举之间链接。

在客户端代码中,我可以使用 NSUInteger 进行OR 运算,然后它们(NSCalendar)如何解析它以了解我需要将其返回给我的元素类型?

最佳答案

使用 & 运算符将它们拉出。这称为位字段,维基百科有一篇关于它们如何工作的不错的文章:http://en.wikipedia.org/wiki/Bit_field

我最近还回答了一个关于按位运算符如何工作的问题:https://stackoverflow.com/questions/3427585#3427633

关于iphone:如何像 NSCalendar 一样混合枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3454980/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com