我有一個問題,我現在還沒有能夠解決的問題,它只發生在發佈版本中,我沒有任何問題,當我在調試版本中運行它時。發佈版本上的塊崩潰
但我認爲這是因爲一個塊沒有被執行。我有一個這樣的崩潰報告:
3 libdispatch.dylib 0x375d1c34 _dispatch_Block_copy + 8
4 libdispatch.dylib 0x375dc4ca dispatch_async$VARIANT$up + 6
5 Koldkrigsspionen 0x00020ef2 -[NOAudioManager audioPlayerDidFinishPlaying:successfully:] (NOAudioManager.m:807)
audioPlayerDidFinishPlaying的方法:成功是這樣的:
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
if (musicPlayerCompletionBlock)
dispatch_async(dispatch_get_main_queue(), musicPlayerCompletionBlock);
}
塊設置這樣的:
- (void)setMusicCompletionBlock:(void (^)(void))theBlock
{
musicPlayerCompletionBlock = theBlock;
}
這樣在頭文件:
void (^musicPlayerCompletionBlock) (void);
你在哪裏定義塊,以及如何存儲它?另外,你使用的是ARC嗎? – 2012-08-04 11:08:50
該塊在另一個對象中定義,如下所示: [[NOAudioManager sharedManager] setMusicCompletionBlock:^ {self videoDidFinish]; }]; 是的,我正在使用ARC。 音頻播放完畢。該應用程序在發佈版本中崩潰。 – WYS 2012-08-04 12:08:58
請編輯原始問題以包含正確格式化的信息。這將有助於澄清未來讀者的問題,並且在評論中非常難以閱讀。 – 2012-08-04 12:38:46