下面是一个代码块,应该测试以查看字典是否为空,如果不是,则拉出正确的对象.但是,出于某种原因,尽管if检查失败,代码仍然执行.是否有一些关于NSNull我不理解的作品的怪癖,或者这是一个苹果虫?
if (svcUser && !(svcUser == (id)[NSNull null])) {
return [svcUser objectForKey:@"access_level"];
}
Run Code Online (Sandbox Code Playgroud)
控制台响应:
(lldb) print svcUser && !(svcUser == (id)[NSNull null])
(bool) $0 = false
(lldb) continue
-[NSNull objectForKey:]: unrecognized selector sent to instance 0x2b51678
Run Code Online (Sandbox Code Playgroud) 在iOS 6上运行应用程序时,我的应用程序不再成功自动旋转.我已更新到Cordova 2.1,我在我的MainViewController.m文件中有以下代码(这是一个子类CDViewController,与新的iOS6处理自动旋转的方式兼容:
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return [super shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
// iOS 6
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
NSUInteger ret = 0;
if ([self shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationPortrait])
ret = ret | (1 << UIInterfaceOrientationPortrait);
if ([self shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationPortraitUpsideDown])
ret = ret | (1 << UIInterfaceOrientationPortraitUpsideDown);
if ([self shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight])
ret = ret | (1 << UIInterfaceOrientationLandscapeRight);
if ([self shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeLeft])
ret = ret | (1 << UIInterfaceOrientationLandscapeLeft);
return ret;
}
Run Code Online (Sandbox Code Playgroud)