为什么苹果推荐将枚举类型定义为NSInteger



在Apple的《采用现代Objective-C》文档中,明确规定:

枚举的类型应该是NSInteger。

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

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

大多数情况下,我使用的枚举值从来不是负的,因此我将它们定义为NSUInteger

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

苹果公司有人知道这种名为"Swift"的新语言。Swift对类型的要求非常严格,所以混合使用有符号值和无符号值是非常不方便的。因此,你应该使用NSInteger,即使你知道值永远不会是负的。

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

这里Apple详细介绍了这个主题

最新更新