end*_*ndy 3 enums bit-manipulation objective-c
所以在我的旅行中,我看到enums的定义是这样的(当需要一个位图时)
enum {
UIControlStateNormal = 0,
UIControlStateHighlighted = 1 << 0, // used when UIControl isHighlighted is set
UIControlStateDisabled = 1 << 1,
UIControlStateSelected = 1 << 2, // flag usable by app (see below)
};
Run Code Online (Sandbox Code Playgroud)
但是,我刚刚看了NSJSONSerilization类,遇到了这样定义的枚举
enum {
NSJSONReadingMutableContainers = (1UL << 0),
NSJSONReadingMutableLeaves = (1UL << 1),
NSJSONReadingAllowFragments = (1UL << 2)
};
typedef NSUInteger NSJSONReadingOptions;
Run Code Online (Sandbox Code Playgroud)
所以我想我的问题是做了UL什么.1 << 1和之间有什么区别1UL << 1
有没有什么区别1 << 1和1UL << 1,但也有可能是之间的差异1 << 33和1UL << 33.取决于平台,并且unsigned long可以变得比一个大int,所以如果enum有很多值,int可能不安全使用.
| 归档时间: |
|
| 查看次数: |
2100 次 |
| 最近记录: |