调用pushViewController时EXC_BAD_ACCESS

tax*_*man 3 iphone exc-bad-access uitableview uiactionsheet

我有一个UITableView里面的UITabBarController

当我打电话时

[[self navigationController] pushViewController:myViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)

没有问题。

但是,当我从 a 内部调用同一行时UIActionSheetDelegate,例如:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
Run Code Online (Sandbox Code Playgroud)

我明白了EXC_BAD_ACCESS

似乎从不同的线程调用此行会导致此问题。

我怎样才能防止这个EXC_BAD_ACCESS问题?

(请注意 myViewController 不为零,或类似的东西)

谢谢!

Can*_*der 5

EXC_BAD_ACCESS当您尝试访问已释放的对象时抛出,并actionSheet:clickedButtonAtIndex:在操作表关闭后在主线程上调用,所以我猜测所指向的内容myViewController已被释放。

不一定是这样nil,事实上,这就是问题所在。所指向的对象被释放,但指针没有被释放nil