为什么Apple建议将枚举类型定义为NSInteger?

时间:2014-06-10 09:11:33

标签: ios objective-c

在Apple的Adopting Modern Objective-C文档中,指定了:

  

枚举的类型应为NSInteger。

此外,对于NS_OPTION宏,他们会说:

  

但是,选项的类型通常应该是NSUInteger。

我使用的枚举值大多数时间都不是负数,因此我将它们定义为NSUInteger

这个决定背后的理由是什么?

2 个答案:

答案 0 :(得分:0)

Apple的某个人知道这种名为“Swift”的新语言。 Swift对类型非常非常严格,因此混合使用有符号和无符号值非常不方便。因此,即使您知道值永远不会为负,也应该使用NSInteger。

答案 1 :(得分:0)

不能保证枚举只有正值。 在某些情况下,-1可用于标记错误。

Here Apple covers this topic in detail