Я создаю версию Release Xcode 7.0. Нет раскадровки, просто файлы nib.Попытка загрузить представление контроллера представления во время его освобождения ... 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>)
В то время как я использовать UIAlertController
s in t он, ни один не используется или не создается, прежде чем получить эту ошибку. Это происходит только при работе под iOS 9.0. Запуск под iOS 8.4 не вызывает ошибок. Во всех случаях приложение работает нормально, и навигационная система работает.
Я подозреваю, что ошибка вводит в заблуждение, но как я могу это исправить?
Per @Nick, здесь метод dealloc используется:
- (void)deregisterNotificationHandlers {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)dealloc {
[self deregisterNotificationHandlers];
}
Я сильно подозреваю, что лет u используют UIAlertController где-то и не осознают этого и не намереваются. Установите точки останова, где вы представляете UIAlertControllers и посмотрите, что происходит – Paulw11
У меня была точка останова, установленная на + [UIAlertController alertControllerWithTitle: message: preferredStyle:], и их не было. Позднее я создал предупреждение, и точка останова работала. – picciano
Вы переопределяете 'dealloc' в любом месте? можете ли вы отправить больше кода? – Nick