我正在與發佈版本的Xcode 7.0建設。沒有故事板,只是筆尖文件。嘗試加載視圖控制器的視圖,當它正在釋放... UIAlertController
我有一個由應用程序委託創建的UINavigationController
並使用視圖控制器初始化它。
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIViewController *viewController = [[TGMainViewController alloc] initWithNibName:nil bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.hidden = YES;
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
使用導航到一個新視圖後:
TGRoutePreparationViewController *viewController = [[TGRoutePreparationViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:viewController animated:YES];
然後回去用:
[self.navigationController popViewControllerAnimated:YES];
我收到以下錯誤:
Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UIAlertController: 0x7b29a600>)
雖然我在t中使用UIAlertController
他的應用程序,沒有人在使用或實例化之前收到此錯誤。這隻在iOS 9.0下運行時纔會發生。在iOS 8.4下運行不會產生錯誤。在所有情況下,該應用似乎都能正常運行,並且導航似乎正在工作。
我懷疑錯誤是誤導,但我該如何解決這個問題?
每@Nick,這裏是正在使用的dealloc方法:
- (void)deregisterNotificationHandlers {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)dealloc {
[self deregisterNotificationHandlers];
}
我強烈懷疑喲你在某個地方使用UIAlertController,並沒有意識到這一點,也不打算這麼做。在提供UIAlertControllers的地方設置斷點並查看會發生什麼 – Paulw11
我在+ [UIAlertController alertControllerWithTitle:message:preferredStyle:]上設置了斷點,但沒有設置斷點。我後來創建了一個警報,斷點確實起作用。 – picciano
你是否在任何地方重寫'dealloc'?你能發佈更多的代碼嗎? – Nick