[iOS SDK] ObjectAL で EXC_BAD_ACCESS発生

30日から休みだったので、年末は奥さんの実家に帰りつつ、2016年に取り組んでいたアプリの仕上げを行っていた。

このアプリは昔作ったリズムアプリをベースに作っているので、

  • Objective-C
  • non-ARC
  • OS X El Capitan
  • Xcode 8.2.1
  • iOS10 simulator

な環境なのだが、OpenALのためにObjectALを使っている。

この環境で、PGMidiを使ってMIDI信号を受け取ってObjectALのOALSimpleAudio を使ってファイル再生をすると、EXC_BAD_ACCESS が発生してしまう。

(サンプルコードは、わかりやすいようにretainCountを呼んで発生させている)

しかも、なぜかMIDI経由でロータム用ファイルを再生したときだけ発生する。隣のハイタムやフロアタムの音を再生する分には問題が起きないのだ。MIDIではなく直接再生した場合も発生しない。

結局 g_defaultBundle の箇所を [NSBundle mainBundle]に変更して対応した。

同じ問題に遭遇する人がいるか不明だけれども、情報共有のため公開してみる。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.