iOS6中UIAlertView的EXC_BAD_ACCESS代码2
我想弄清楚为什么即时通讯崩溃在我的应用程序。
它在ios5.1模拟器中运行的Xcode 4.4中工作得很好,但是当我切换到xcode 4.5和ios6时,我得到了一个EXC_BAD_ACCESS代码2.这是我的代码:
- (void) myMethod { UIAlertView *alertview = [[[UIAlertView alloc]initWithTitle:@"Title" message:@"message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil] autorelease]; alertview.tag = 1 [alertview show]; }
这是给我一个EXC_BAD_ACCESS代码2在[UIAlertView show]
行
有任何想法吗?
谢谢!
我懂了。 我有同样的问题,在我的情况下,似乎该方法是从后台抛出(现在在ios7中,在ios6 UIAlertView被自动放入到主线程@nodepond说 – 谢谢!
尝试确保从主线程显示该方法:
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES];
祝你好运!
即使在2014年,它也发生在我身上。问题是要使用已经发布的对象。
我做错了什么:
//class B with UIAletViewDelegate -(void) showAlert{ UIAlertView * alert = [[UIAlertView alloc] initWithTitle bla bla...]; [alert show]; } //class A viewDidLoad{ MyClassB *B = [[B alloc] init]; [B showAlert]; }
什么是正确的方法:
//Class A @implementation A{ ClassB *B; } viewDidLoad{ B = [[B alloc] init]; [B showAlert]; }