我有点迷失在按位;)
我的目标是检索应用程序支持的整个方向集,并测试每个结果值以更新自定义变量。我的问题是我不知道如何进行比较(我遇到了转换/测试问题......)
首先我读了这篇文章:Testing for bitwise Enum values 但它并没有给我带来光明......
假设我为我的应用程序声明了以下方向(以下是我的变量supportedOrientations的日志输出):支持的方向 =( UIInterfaceOrientationPortrait )
所以我的第一次尝试是尝试对整数值进行一些测试,但它不起作用(即使应用程序被声明为纵向模式,测试也会返回'false'):
NSArray *supportedOrientations = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UISupportedInterfaceOrientations"];
NSLog(@"[supported orientations = %@", supportedOrientations);
// for clarity just make a test on the first orientation we found
if ((NSInteger)supportedOrientations[0] == UIInterfaceOrientationPortrait) {
NSLog(@"We detect Portrait mode!");
}
我的第二次尝试是尝试按位,但这次它总是返回“true”(即使支持的方向不是 UIInterfaceOrientationPortrait)。:
NSArray *supportedOrientations = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UISupportedInterfaceOrientations"];
NSLog(@"[supported orientations = %@", supportedOrientations);
// for clarity just make a test on the first orientation we found
if ((NSInteger)supportedOrientations[0] | UIInterfaceOrientationPortrait) { // <-- I also test with UIInterfaceOrientationMaskPortrait but no more success
NSLog(@"We detect Portrait mode!");
}
所以我的问题是:
在我的情况下如何测试方向?
它是一种通过使用按位事物(使用 | 操作数)来使用测试的方法吗?