0

我顯示使用此行代碼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。 –

回答

0

感謝@ Y.Bonafons

我沒有我的委託設置爲nil在pop'ing後,以前的控制器,這就是爲什麼它試圖調用它的方法。

啓用殭屍對象可以幫助我很多。

相關問題