【发布时间】:2019-11-26 14:58:18
【问题描述】:
我从 iOS 6.0 开始为 iPhone 开发了一款游戏。
它在运行 iOS 7.1 的 5S 上运行良好,但在使用 iOS 6.1.3 的旧 3GS 上测试它时,当尝试从超级视图中删除一些自定义 UIView 时,它会崩溃并显示“EXC_BAD_ACCESS 代码:0”。
我记录了我的自定义视图,它是超级视图(不是零),但没有任何工作!
还尝试使用 lldb 命令记录我的视图和超级视图,并确认它们不是 nil。
有什么想法吗??无法理解它如何在 iOS7 而不是 iOS6 上运行!
出现错误时的代码如下:
- (void)didMoveToParentViewController:(UIViewController *)parent{
if(parent == nil){
for (LevelNumberView *button in self.levelButtons) {
if(self.view && [self.view.subviews containsObject:button]){
NSLog(@"-- button:%@", button);
[button removeFromSuperview];
}
}
self.levelButtons = nil;
[self.titleView removeFromSuperview];
self.titleView = nil;
[self.view removeFromSuperview];
self.delegate = nil;
}
}
【问题讨论】:
-
看起来像是堆栈溢出(无限循环)还是错误的内存访问(尝试运行 Zombies 仪器)?这是
EXC_BAD_ACCESS的两个常见原因。 -
顺便问一下,你用的是ARC吗?
-
是的,我正在使用 ARC。这不是无限循环,我不能使用僵尸仪器! (可能是因为它在 3GS 上......它在 5S 上工作)
标签: ios objective-c iphone exc-bad-access