UIActivityViewController崩溃时iOS8上
问题描述:
我显示使用此行代码activityViewController这里面MyClass的UIActivityViewController崩溃时iOS8上
+ (void)showShareMenuWithString:(NSString*)text sender:(id)sender{
NSArray* array = [NSArray arrayWithObject:[NSString stringWithFormat:@"%@",text]];
UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:array applicationActivities:nil];
[sender presentViewController:activityView animated:YES completion:nil];
}
这种方法的声明之后, activityView出现在屏幕上,可以选择发送短信或电子邮件等操作。选择其中一项操作后,邮件控制器的SMS将在屏幕上显示预填数据。但取消这些控制器后,我的应用程序崩溃与EXC_BAD_ACCESS错误。它会随机发生,而且这个控制器有可能会在没有崩溃的情况下消失。应用程序仅适用于iPhone,并且数组不是零。
该应用没有在iOS7上崩溃。它在不同的iOS 7/8的iPhone上进行了测试。有人有同样的问题?有没有发现?
答
感谢@ Y.Bonafons
我没有我的委托设置为nil在pop'ing后,以前的控制器,这就是为什么它试图调用它的方法。
启用僵尸对象可以帮助我很多。
EXC_BAD_ACCESS通常意味着你试图访问一个已经释放的对象,试图找出它是哪一个(在调试器中你可以看到调用了哪个方法)。在这种情况下,我猜测它是'发件人'对象,在你弹出activityView后消失。 – fishinear
你可以启用僵尸对象来帮助你找到哪个对象被使用但释放:edit scheme/diagnostics/enable zombie。 –