2014年01月30日

NSBundle pathForResource:ofType: がたまにnilを返す

url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"beep" ofType:@"wav"]];
が時々不正例外でcrashする(iOS6でも7でも)
"beep.wav"はリソースに正しく存在する
crashする時も特に変わったことはしてなくて確率的に(数十回から数百回に一回ぐらい)発生する。

切り分けていくと

NSString* soundfile=[[NSBundle mainBundle] pathForResource:@"beep" ofType:@"wav"];

がたまにnilを返すよう(たいていはうまくいく)

StackOverflowにも同じ質問があるけど原因はよくわからない
http://stackoverflow.com/questions/13112998/nsbundle-pathforresourceoftype-occasionally-returns-nil-for-one-resource

仕方がないのでnilの時は何もしないようにしてcrashを回避
(下のコードを入れればcrashしなくなるのでNSBundleがたまにnilを返してるのは確実)

if (soundfile == nil)
return;
url = [NSURL fileURLWithPath:soundfile];

crashするよりは音が抜ける方がまだましなので。
しかしなんでこうなるの? 教えて偉い人。(っていうかbugだろapple)
ラベル:アプリ製作
posted by one-hand-engineer at 08:52| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック