[解決済み] AVAudioPlayerがデバッグモードでブレークポイントを投げる
2022-10-12 16:55:36
質問
アプリをロードするたびに、この行でブレークポイントを設定したかのように停止してしまいます。
self.audioPlayer =
[[[AVAudioPlayer alloc] initWithData:[dataPersister loadData:self.fileName]
error:&outError] autorelease];
この行の上にも近くにもブレークポイントはありません。デバッグ モードでアプリを実行したときにのみ発生し、ブレーク ポイントの後は何もクラッシュしません。プログラムの実行を続行します]をクリックしても何も起こらないので、アプリは動作します。
これは、loadData メソッドで
initWithData
:
-(NSData*)loadData:(NSString*)fileName
{
NSString *dataPath = [self.path stringByAppendingPathComponent:fileName];
dataPath = [dataPath stringByStandardizingPath];
NSData *data = [[[NSData alloc] initWithContentsOfFile:dataPath]autorelease ];
return data;
}
loadData関数は問題なく動作しているようです。要求されたmp3ファイルは、ブレークポイントの後、問題なくロードされ、再生されます。
何が間違っているのか、何か心当たりはありますか?
EDITです。 ブレークポイントで停止したときにバックトレースを実行してみました。これが出力されました。
(lldb) bt * スレッド #1: tid = 0x1c03, 0x30df1724 libc++abi.dylib`__cxa_throw, stop reason = breakpoint 1.2 フレーム #0: 0x30df1724 libc++abi.dylib`__cxa_throw frame #1: 0x36403a24 AudioToolbox`ID3ParserHandle::ID3ParserHandle(void*, long (*)(void*, unsigned long, unsigned long, unsigned long, void**, unsigned long*))) + 452 フレーム#2: 0x36403b0e AudioToolbox`ID3ParserOpen + 142 フレーム#3: 0x3635bd16 AudioToolbox`MPEGAudioFile::ParseID3Tags() + 58 フレーム番号4:0x3635b9aa AudioToolbox`MPEGAudioFile::ParseAudioFile()(パースオーディオファイル) + 26 frame #5: 0x3631723e AudioToolbox`AudioFileObject::DoOpenWithCallbacks(void*, long (*)(void*, long long, unsigned long, void*, unsigned long*), long (*)(void*, long long, unsigned long, void const*, unsigned long*), long long (*)(void*, long long, void*)) + 166 フレーム番号6:0x36316480 AudioToolbox`AudioFileOpenWithCallbacks + 612 フレーム#7: 0x31f4c1ec AVFoundation`-[AVAudioPlayer initWithData:error:] + 120
解決方法。 すべての例外に対して例外ブレークポイントを無効にし、Objective-Cの例外に対してのみブレークポイントを使用すれば、問題はなくなることが判明しました。しかし、AVAudioPlayer の割り当てが C++ 例外を投げるという問題は解決されません。
どのように解決するのですか?
例外ブレークポイントを追加し、例外の種類を "All" から "Objective-C exceptions" に編集します。
AudioToolbox の一部のクラスは、通常の C++ 例外をスローします。この方法でそれらをフィルタリングすることができます。
関連
-
[解決済み】"malloc_error_breakにブレークポイントを設定してデバッグする "方法
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
IOS8 Development Guide Error Thread 1: signal SIGABRT
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] swiftで電子メールアドレスを検証する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
iOS classic error Undefined symbols for architecture XXX:
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] テキストフィールドを移動する方法(次へボタン/完了ボタン)
-
[解決済み] iOS - UITextFieldの外側をタッチするとキーボードが外れる。
-
[解決済み] SwiftでURLから画像を読み込む/ダウンロードする
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み] Swift 3でディスパッチキューを作成する方法
-
[解決済み] UITableView - トップにスクロールする
-
[解決済み] Swiftのプロトコルでオプションのメソッドを定義するには?