Кажется, что я удаляю что-то вроде панели вкладок, контроллера навигации или ???, и это происходит, когда я перехожу к определенному виду контроллер, а затем нажмите на панель вкладок на определенную вкладку (например, если я попал на среднюю вкладку из 3 вкладок, никаких проблем, но если я попаду на самую верхнюю вкладку, я получаю сбой). Моя программа в основном завершена, и на данный момент у меня есть довольно большая база кода. У кого-нибудь есть предложения по отладке этого - я ждал до сих пор, чтобы работать над этим. Я считаю, что нужно посмотреть на процедуры dealloc и любые релизы в соседнем коде. Вы можете предложить любую вещь, менее «ручную»? Благодаря!Tab Bar Issue: [UILayoutContainerView hash]: сообщение отправлено на освобожденный экземпляр
0
A
ответ
1
Не зная больше, вот как я буду заниматься этим.
В окне просмотра журналов введите backtrace после исключения в gdb. Надеюсь, это даст вам точную строку, которая показывает, какой объект свободен слишком много раз.
Ищите ссылки на этот объект и выясните, можете ли вы найти ненужный выпуск, авторейтинг и т. Д. Путем проверки. Вы не должны выпускать/автообновлять все, что ваш путь выполнения не принадлежит (через alloc).
Возможно, вам удастся распечатать счетчики для этого объекта (отправив сообщение keepCount на объект-нарушитель). Несмотря на то, что документация разработчика настоятельно указывает на то, что это бессмысленно и не очень полезно, я посчитал полезным иногда помогать мне сужаться, когда я случайно что-то освободил.
Смежные вопросы
- 1. сообщение отправлено на освобожденный экземпляр
- 2. Сообщение отправлено на освобожденный экземпляр
- 3. сообщение отправлено на освобожденный экземпляр
- 4. Сообщение отправлено на освобожденный экземпляр
- 5. [CFNumber сохранить]: сообщение отправлено на освобожденный экземпляр
- 6. Ошибка: сообщение отправлено на освобожденный экземпляр
- 7. [UIRemoteKeyboardWindow release]: сообщение отправлено на освобожденный экземпляр
- 8. Ошибка: сообщение отправлено на освобожденный экземпляр в
- 9. [UIDeviceRGBColor set]: сообщение отправлено на освобожденный экземпляр
- 10. tableView: didSelectRowAtIndexPath - сообщение отправлено на освобожденный экземпляр
- 11. tableView: didSelectRowAtIndexPath: сообщение отправлено на освобожденный экземпляр
- 12. ViewController отвечаетSoSelector:]: сообщение отправлено на освобожденный экземпляр
- 13. [CALayer isKindOfClass:]: сообщение отправлено на освобожденный экземпляр
- 14. [UITableViewCell _didChangeToFirstResponder:]: сообщение отправлено на освобожденный экземпляр
- 15. [UIImageView _isChargeEnabled]: сообщение отправлено на освобожденный экземпляр
- 16. - [__ NSDictionaryI isNSString__]: сообщение отправлено на освобожденный экземпляр
- 17. [CFString release]: сообщение отправлено на освобожденный экземпляр
- 18. didreceivememorywarnings сообщение отправлено на освобожденный экземпляр
- 19. [Класс NSDateFormatter]: сообщение отправлено на освобожденный экземпляр
- 20. [NSError сохранить]: сообщение отправлено на освобожденный экземпляр
- 21. [CALayer сохранить]: сообщение отправлено на освобожденный экземпляр?
- 22. CFString isNaturallyRTL - сообщение отправлено на освобожденный экземпляр
- 23. Сообщение отправлено на освобожденный экземпляр Core Data
- 24. таблица прокрутки: сообщение отправлено на освобожденный экземпляр
- 25. [UIView _forgetDependentConstraint:]: сообщение отправлено на освобожденный экземпляр
- 26. Сообщение отправлено на освобожденный экземпляр ARC
- 27. EXC_BREAKPOINT: сообщение отправлено на освобожденный экземпляр
- 28. SKPSMTPMessage setWatchdogTimer:]: сообщение отправлено на освобожденный экземпляр
- 29. Ошибка «Сообщение отправлено на освобожденный экземпляр»
- 30. - [AVPlayerViewController сохранить]: сообщение отправлено на освобожденный экземпляр
Решение с использованием вышеприведенной отладки: 1) Используется - (void) viewDidLoad вместо loadView для загружаемого контроллера просмотра nib. 2) Также изменено: UIView * contentView = [self.navigationController view]; self.view = contentView; [релиз contentView]; : self.view = [self.navigationController view]; – Rob
Извините за уродливое форматирование, но сайт предпочитает оставлять комментарий к «уже ответили на вопрос». – Rob
Ваше изменение в пункте 2 имеет смысл. Так как UIView ContentView не был выделен, путь кода не принадлежал. Поэтому сообщение [contentView release] было посторонним. Отличная работа! – hyuan