2013-02-22 11 views
3

我測試我的設備(音板)應用程序崩潰,並將其與EXC_BAD_ACCESS崩潰,我已經使用斷點和[AVAudioSession privateBeginInterruption]應用與AVAudioSession privateBeginInterruption

的崩潰發生以下這種模式附帶的錯誤:

  1. 應用啓動,我們看到主菜單
  2. 主菜單按鈕被按下,響板視圖被加載(推),一些按鈕被按下這裏和聲音播放。
  3. 返回主菜單([self.navigationController popViewControllerAnimated:YES];
  4. 應用進入背景
  5. 當應用程序進入前景和音板的菜單按鈕被按下應用程序崩潰。

我不知道這裏發生了什麼,我已經安裝了CrashLytics,它只是說:

app crash

也許音頻對話會從內存中釋放和應用程序試圖訪問到它,失敗?

音頻會議在viewDidLoad

// Initialize audio session 
[[AVAudioSession sharedInstance] setDelegate: self]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: nil]; 

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; 
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride); 

初始化在viewDidUnload

[[AVAudioSession sharedInstance] setDelegate: nil]; 

任何提示?

謝謝!

+0

再次啓用殭屍。 – 2013-02-22 21:50:14

+0

儘管我在Swift中使用iOS 8,並且不推薦使用委託屬性 - 此問題幫助我修復了我的EXC BAD ACCESS問題。我忘記刪除錄音機的代表,這些代表使用EXC BAD ACCESS錯誤使我的應用程序崩潰,這使得很難確定問題。多謝你們! – maddob 2015-10-05 09:27:44

回答

6

崩潰,是因爲您設置了會議的代表到控制器這一行

[[AVAudioSession sharedInstance] setDelegate: self]; 

但並未實現了所需的委託方法(中斷一個)

或者刪除該委託設置行或實施委託方法來解決崩潰

+0

我已經刪除了委託設置,崩潰沒有了。謝謝! – roymckrank 2013-02-22 18:28:40