'设置UINavigationController时,不能对类型:(null)'进行比较查询

时间:2012-10-19 00:57:05

标签: objective-c ios uinavigationcontroller

我的应用程序在应用程序委托中崩溃。

它抛出的错误是:

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'无法对类型进行比较查询:(null)'

我的代码如下。我已经把日志记录留在了,所以你可以看到我在哪里检查:

self.viewController = [[ParseStarterProjectViewController alloc] initWithNibName:@"ParseStarterProjectViewController" bundle:nil];
NSLog(@"View controller is %@",self.viewController);
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
NSLog(@"Nav controller is %@",navController);
NSLog(@"Self window is %@",self.window);
self.window.rootViewController = navController;

当它试图运行最后一行时,将rootViewController设置为navController,它正在破碎。

3条NSLog线的结果如下:

View controller is <ParseStarterProjectViewController: 0x1fda0770>
Nav controller is <UINavigationController: 0x1fda1390>
Self window is <UIWindow: 0x1fd97c90; frame = (0 0; 320 480); opaque = NO; autoresize = RM+BM; layer = <UIWindowLayer: 0x1fd97d90>>

对我来说,任何事情看起来都不对,这就是为什么我非常困惑。

2 个答案:

答案 0 :(得分:28)

我刚刚遇到这个问题,原因是我在PFQuery中做了equalTo:[PFUser currentUser]但当时没有登录用户。

答案 1 :(得分:0)

这真是一个关于“如何从崩溃日志中获取更多信息”的问题。 rmaddy的评论指出我在正确的方向。

肖恩的回答here将我排除在外。