NSError, OSStatus用のログをつくる
Audio系のAPIを使っているとその戻り値もしくは, Error の詳細が
NSError, OSStatus として返ってくるケースが多いです。
NSErrorは, Objective-CのプログラミングでハイレベルAPIでよくエラーを保存しておくために使われます。OSStatusは低レベルAPIですね。
このデータからできればエラーの詳細, プログラムを続けるかの可否, 独自のログメッセージなどが欲しいものです。というわけで少し作ってみました。
サンプル
+(BOOL)errorLog:(NSError *)error message:(NSString *)message { if ( error != nil ) { NSLog(@"%@ : %@", message, [error localizedDescription]); } return error == nil; } +(BOOL)statusLog:(OSStatus)status message:(NSString *)message { if ( status != noErr ) { NSLog(@"Error - %@ %ld", message, status); } return status == noErr; }
NSErrorの場合エラーがなければnilを返します。 OSStatusの場合0(noErr) を返します。
そこで判定をいれてO.K.ならYES, だめならNOを返すようにつくりました。
エラーがある場合, NSError の場合, [error localizedDescription] でエラーの詳細がとれます。
OSStatus というのはSInt32のtypedefです。はいただの番号です。この番号からエラーを掘り出す訳ですが残念ながら, 詳細などを引っ張るには一覧などを参考にするしかありません。(しかもよくわからない)