我的应用程序测试了我的selectedViewController是否等于我的moreNavigationController。
if( self.tabBarController.moreNavigationController == self.tabBarController.selectedViewController )
{
// do something awesome.
}
else
{
NSLog(@"No match");
}
表达式总是被评估为false,所以我开始调试。我在代码中放了一个断点,并将我的指针悬停在'self'上,这导致黄色级联弹出窗口,我可以看到两个控制器的地址。弹出窗口中的地址相同,因为if语句失败,所以地址必须不正确。我在调试器窗口中看到了相同的结果。
我稍后添加了这些日志记录语句,显示对象有2个不同的地址。
NSLog([NSString stringWithFormat:@"%d",(self.tabBarController.moreNavigationController)] );
NSLog([NSString stringWithFormat:@"%d",(self.tabBarController.selectedViewController)] );
为什么调试器窗口在于?具体来说,有人知道它显示的地址是什么,以及控制器显示相同地址的原因是什么?
答案 0 :(得分:1)
我遇到了同样的问题,我90%确定它与使用3.0开发工具构建2.1(或可能的2.X)SDK有关。在我的例子中,设置目标SDK for 3.0解决了这个问题。 让调试器基本上骗你是令人沮丧的;)
答案 1 :(得分:0)
我看到完全相同的事情。尤其是花车。我切换到3.1目标,它显示正确。问题是,代码是否真的在2.1下正常工作(变量的NSLog告诉我它是。)