UIAlertView导致iOS SDK 6.0崩溃

时间:2012-09-13 14:44:22

标签: iphone objective-c uialertview ios6

我最近向App Store提交了一个尚未被接受的应用程序。同时,我下载了Xcode 4.5并在iPhone 6.0模拟器中测试了我的应用程序。

但是,当我打算显示UIAlertView时,该应用会因[myAlertView show]行崩溃而导致EXC_BAD_ACCESS错误。它适用于iPhone 5.1模拟器。

这是我的代码:

UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"Are you sure?" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil];
[myAlertView show];  

这是正常的吗?我的代码怎么办?

另外,您认为我应该将我的应用程序重新发送给Apple吗?(只是询问您的建议)

提前致谢。

编辑:由于iOS 6崩溃,Apple拒绝了该应用。

2 个答案:

答案 0 :(得分:27)

删除此方法并使用其他方法:

 [myAlertView show];  

尝试此方法:

 [myAlertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES];

答案 1 :(得分:20)

见相关问题: UIAlertView shown from background thread and with no delegate creates EXC_BAD_ACCESS

用户输入和UI调用必须来自主线程。他们中的许多人将在其他线程上“大部分”工作,但有时会崩溃。与模拟器相比,它们更容易在设备上发生不同的(或多或少)崩溃,但Apple可能会做出改变,从而影响iOS6中的差异。

对于你的第二个问题,我会回答是的,我会在你解决问题后立即上传更新的二进制文件,特别是如果你可以在设备上重现它(我强烈建议你尝试在设备上重现它)一个装置)。否则,你可以A)接受用户讨厌的错误,或者B)被拒绝并且有更长的延迟和可能更严格的审查。如果您在审核完成之前发送更新的二进制文件,它确实会让您处于AFAIK的“后方”,但比替代方案更好。