18

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

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

这是我的代码:

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

这正常吗?我的代码做错了什么?

另外,您认为我应该将我的应用程序重新发送给 Apple 吗?(只是征求您的意见)

提前致谢。

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

4

2 回答 2

27

删除此方法并使用另一种方法:

 [myAlertView show];  

试试这个方法:

 [myAlertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES];
于 2013-01-20T01:56:24.833 回答
20

请参阅此相关问题: UIAlertView 从后台线程显示且没有委托创建 EXC_BAD_ACCESS

用户输入和 UI 调用必须来自主线程。它们中的许多将“大部分”时间在其他线程上工作,但有时会崩溃。与模拟器相比,它们在设备上崩溃的可能性更大(或多或少),但 Apple 所做的更改可能会影响 iOS6 中的这种差异。

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

于 2012-09-13T15:07:13.720 回答