我有一个if语句,其中app会在LoginViewController
返回dataCenter.usernameData
的条件下放置一个名为(null)
的模态视图控制器,否则它将继续运行代码。我已将其设置为返回(null)
的位置。但是,似乎这些语句已被翻转到dataCenter.usernameData
作为(null)
返回的位置,然后它不会添加LoginViewController
,而是继续从父视图控制器运行代码。 / p>
以下是代码:
AppDelegate *dataCenter = (AppDelegate *) [[UIApplication sharedApplication] delegate];
if ([dataCenter.usernameData isEqual: @"(null)"]) {
ViewController *viewControl = [self.storyboard instantiateViewControllerWithIdentifier:@"LoginControllerNav"];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didDismissSecondViewController)
name:@"SecondViewControllerDismissed"
object:nil];
[self presentViewController:viewControl animated:NO completion:nil];
NSLog(@"No username.");
} else {
NSLog(@"Username; continue running code.");
}
这应该发生吗?或者我做错了什么?一个附带问题:说我在App Store中以这种格式发布它。它会翻回到正确的方式还是会保持这样?任何帮助表示赞赏。谢谢。
答案 0 :(得分:1)
在评论讨论中,我们可以推断dataCenter.usernameData
未初始化,因此是nil
对象。
执行if语句时
if ([dataCenter.usernameData isEqual: @"(null)"])
您正在将nil
对象与NSString的实例进行比较,该实例将失败并进入您的else
子句。
要解决此问题,请将您的if语句更改为
if (!dataCenter.usernameData)
这将检查您的财产usernameData
是否为零并进入您的if子句。
答案 1 :(得分:1)
这将检查对象是否为零:
if (!dataCenter.usernameData)