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上进行了测试。有人有同样的问题?有没有发现?

+0

EXC_BAD_ACCESS通常意味着你试图访问一个已经释放的对象,试图找出它是哪一个(在调试器中你可以看到调用了哪个方法)。在这种情况下,我猜测它是'发件人'对象,在你弹出activityView后消失。 – fishinear

+1

你可以启用僵尸对象来帮助你找到哪个对象被使用但释放:edit scheme/diagnostics/enable zombie。 –

感谢@ Y.Bonafons

我没有我的委托设置为nil在pop'ing后,以前的控制器,这就是为什么它试图调用它的方法。

启用僵尸对象可以帮助我很多。