1

ゲームを開発しているときに、いくつかのクラッシュに直面しています。おそらくサウンド管理のバグが原因です。これは私のトレースがそれらについて言っていることです:

Thread : Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x000000019599bbd0 objc_msgSend + 16
1  CoreFoundation                 0x00000001851d4ae4 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
2  CoreFoundation                 0x0000000185113220 _CFXNotificationPost + 2060
3  AVFoundation                   0x0000000183a4af8c __avplayeritem_fpItemNotificationCallback_block_invoke + 5336
4  libdispatch.dylib              0x0000000195fcd3ac _dispatch_call_block_and_release + 24
5  libdispatch.dylib              0x0000000195fcd36c _dispatch_client_callout + 16
...

行番号 3 は AVFoundation と AVPlayerItem に関するものなので、音楽の AVPlayerItems オブジェクトに何か問題があると思いますが、何か... ? :)

どんなアドバイスでも大歓迎です!

4

2 に答える 2

4

このコードを ViewController に追加します

-(void) viewWillDisappear:(BOOL)animated
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [super viewWillDisappear:animated];
}

そして、このオブザーバーをviewWillAppearメソッドに再度追加します。

于 2014-12-18T18:00:53.547 に答える
1
-(void)dealloc{

    // remove all observer of this "CURRENT" screen
    [[NSNotificationCenter defaultCenter] removeObserver:self name: @"NAME_OF_UR_OBSERVER" object:nil];

    // "OR" all observer from NSNotificationCenter
    [[NSNotificationCenter defaultCenter] removeObserver:self];

}
于 2015-07-18T00:42:38.000 に答える