从superview中删除时EXC_BAD_ACCESS

时间:2011-11-23 10:14:30

标签: uiviewcontroller exc-bad-access addsubview superview

我的项目使用ARC,所以我不能使用保留或释放,在ViewController A中,我初始化ViewController B并将其视图添加为子视图:

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

[self.view addSubview:viewB.view];

在ViewControllerB中,我创建一个按钮,当用户点击它时,视图将从superview中删除:

[self.view removeFromSuperview];

结果是EXC_BAD_ACCESS。 请帮帮我,对不起我的英语。

2 个答案:

答案 0 :(得分:0)

我认为viewB不是局部变量。

答案 1 :(得分:0)

我也有同样的问题..

尝试这样的事情:

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 - 它不能保护您免受内存管理错误的影响......

如果出现问题,我很抱歉。