EXC_BAD_ACCESS при удалении из суперпредставления - PullRequest
0 голосов
/ 23 ноября 2011

Мой проект использует ARC, поэтому я не могу использовать retain или release, во ViewController A я запускаю ViewController B и добавляю его представление в качестве подпредставления:

ViewControllerB *viewB = [[ViewControllerB alloc] init];

[self.view addSubview:viewB.view];

А в ViewControllerB я делаю кнопку, и когда пользователь нажимает на нее, представление удаляется из суперпредставления:

[self.view removeFromSuperview];

И результат - EXC_BAD_ACCESS. Пожалуйста, помогите мне и извините за мой английский.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2012

У меня тоже такая же проблема ..

Попробуйте что-то вроде этого:

NSLog("self.view retain count: %d", self.view.retainCount);
[self.view removeFromSuperview];
NSLog("self.view retain count: %d", self.view.retainCount);

или

NSLog("self.view.superview retain count: %d", self.view.superview.retainCount);
[self.view removeFromSuperview];
NSLog("self.view.superview retain count: %d", self.view.superview.retainCount);

Это не очень хорошая практика, но, возможно, вы обнаружите ошибку утечки памяти ... Если вы используете ARC - он не защитит вас от ошибок управления памятью ...

Извините за мой английский, если что-то не так.

0 голосов
/ 16 января 2012

Я думаю, что viewB не является локальной переменной.

...