我的應用程序測試了我的selectedViewController是否等於我的moreNavigationController。爲什麼XCode在調試器窗口中顯示錯誤的對象地址?
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)]);
爲什麼調試窗口在說謊?具體來說,是否有人知道它顯示的地址是什麼值,以及爲什麼控制器會顯示相同的地址?
我重寫了if語句以下,但我仍然對調試器很好奇。 \t \t if(self.tabBarController.selectedIndex> = 4 && [[self.tabBarController viewControllers] count]> 5) – CornPuff 2009-06-22 23:17:32