我最近向app Store提交了一个尚未被接受的应用程序。同时,我下载了Xcode4.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];
这正常吗?我的代码哪里做错了?
另外,你认为我应该把我的应用重新发送给苹果吗?(只是征求你的意见)
提前谢谢。
编辑:由于iOS 6崩溃,苹果拒绝了这款应用。
发布于 2012-09-13 23:07:14
请参阅此相关问题:UIAlertView shown from background thread and with no delegate creates EXC_BAD_ACCESS
用户输入和UI调用必须来自主线程。它们中的许多在大多数情况下都可以在其他线程上工作,但有时会崩溃。它们更有可能在设备上以不同的方式崩溃(或多或少),而不是模拟器,但苹果可能做出了一些改变,从而影响了iOS6的这种差异。
对于你的第二个问题,我会回答是的,一旦你解决了这个问题,我会上传一个更新的二进制文件供审查,特别是如果你可以在设备上重现它的话(我强烈建议你尝试在设备上重现它)。否则,你可能A)被你的用户讨厌的bug接受,或者B)被拒绝,并有更长的延迟和可能更多的审查。如果你在审查结束之前发送一个更新的二进制文件,它确实会把你放在AFAIK的“后面”,但比其他方法更好。
发布于 2013-01-20 09:56:25
删除此方法并使用其他方法:
[myAlertView show];
尝试以下方法:
[myAlertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES];
https://stackoverflow.com/questions/12408901
复制相似问题