我有一个问题我在 2 天内无法解决,它只发生在发布版本中,我在调试版本中运行它时没有任何问题。
但我认为这是因为一个没有被执行的块。我有这样的崩溃报告:
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:successfully 的方法是这样的:
- (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);