У моего приложения не было сбоев, пока не вышло iOS 7.1. Теперь на любом методе removeFromSuperview
, сбой. Например: у меня есть контроллеры представлений, и когда я хочу удалить контроллер представления, я удаляю все его дочерние объекты, а затем удаляю из стека (стек: я храню в нем контроллеры представлений, для загрузки нового содержимого и загрузки предыдущее содержимое):
for (UIView *subView in [contentVc subviews])
[subView removeFromSuperview];
И я получил
- [CALayer сохранить]: сообщение отправлено на освобожденный экземпляр
сообщение
[actual removeFromParentViewController];
- хороший способ удалить его? И выпустит ли он весь контроллер представления и его подпункты? Потому что вместо removeFromSuperview мое приложение не разбивается. Я не понимаю, что было изменено в iOS 7.1.
И как я могу удалить все subviews в viewController
без removeFromSuperview
и не удалять my viewController
(если я просто хочу добавить новые subviews и удалить содержимое в настоящее время)?
UPDATE:
иногда сбой для:
[myactualviewcontroller.view removeFromSuperview];
- [CALayer сохранить]: сообщение отправлено на освобожденный экземпляр
Почему???
и иногда, если я попытаюсь удалить основной подвью из представления контроллера вида, он получил тот же сбой:
[mainView removeFromSuperview]
(mainView - это единственный UIView, добавленный в vc.view)
UPDATE2: (хорошо подробно)
Итак, у меня есть контейнер. Я добавляю UIViewController.view
в этот контейнер. И я добавляю представление как subview к UIViewController.view
. Это представление не является локальным uiview, то есть его объявлено как implementation{ UIView* mainView }
. Когда мой UIViewController будет освобожден, в - (void) dealloc { [mainView removeFromSuperview]; [mainView release] [super dealloc];}
В mainView removeFromSuperview произошел сбой моего приложения.