Objective c 你能有相同的目标c枚举值吗?

Objective c 你能有相同的目标c枚举值吗?,objective-c,Objective C,我是Objective C的初学者。我在Apple文档中遇到了以下typedef枚举 typedef enum NSUnderlineStyle : NSInteger { NSUnderlineStyleNone = 0x00, NSUnderlineStyleSingle = 0x01, NSUnderlineStyleThick = 0x02, NSUnderlineStyleDouble = 0x09, NSUnderlinePatternSolid

我是Objective C的初学者。我在Apple文档中遇到了以下typedef枚举

    typedef enum NSUnderlineStyle : NSInteger {
   NSUnderlineStyleNone = 0x00,
   NSUnderlineStyleSingle = 0x01,
   NSUnderlineStyleThick = 0x02,
   NSUnderlineStyleDouble = 0x09,
   NSUnderlinePatternSolid = 0x0000,

   NSUnderlinePatternDot = 0x0100,
   NSUnderlinePatternDash = 0x0200,
   NSUnderlinePatternDashDot = 0x0300,
   NSUnderlinePatternDashDotDot = 0x0400,
   NSUnderlineByWord = 0x8000 
} NSUnderlineStyle;
这不是我们的价值观吗 NSUnderlineStyleNone=0x00, NSUnderlinePatternSolid=0x0000

相同的十六进制0?如何区分这两个值


提前感谢。

虽然苹果将它们包括在相同的
枚举定义中,但定义了3组不同的值。第一个是线条样式,第二个是图案,还有一个是选项(
ByWord


定义选项时,您可以从每组中最多选择一个值,然后将它们组合在一起。通过使用相同的值定义样式和模式,这仅仅意味着默认值(由结果中的位0定义)将没有下划线,但如果选择了样式,默认模式将是一条实线。

Thank you@avi,这种分组是否是我错过的某种正式约定(如使用set…)的前置setters?如果是这样的话,在用基本问题烦扰人们之前,最好在什么地方查阅?或者这是您刚刚发现的。@Avi,给定一个表示适当组合下划线样式的数字,是否可以准确确定它是什么?您可以通过将组合值与各个枚举值进行ANDing来测试各个位。e、 g.如果您有值0x101,您可以通过
0x101&NSUnderlinePatternDot
确定它是
NSUnderlinePatternDot
,并通过
0x101&NSUnderlineStyleSingle
确定它是
NSUnderlineStyleSingle
。显然,您必须测试所有可能的值,并跟踪哪些值匹配。