0

呼び出されたときに4つのオーディオファイルをランダムに再生しようとしています。ここにコードがあります

  // randomize the playback on the setShot files
   int randomNumber = arc4random() % 4 + 1;
   NSString *tmpFileName = [[NSString alloc] initWithFormat:@"SetShot%d", randomNumber];
   NSString *fileName = [[NSBundle mainBundle] pathForResource:tmpFileName ofType:@"aif"];
   SystemSoundID soundID;
   AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:fileName], &soundID);
   AudioServicesPlaySystemSound (soundID);

シミュレーターにないデバイスで上記のクラッシュが発生します。私はコーディングにかなり慣れていません。ご協力ありがとうございます。

サウンドファイルは、SetShot01からSetShot04までです。

5.1.1のデバイス上のARC-armv6、armv7 xcode 4.3.2

4

1 に答える 1

2

ファイルがメインバンドルtmpFileNameに存在しない可能性があります。その結果、nil URL になります。これは、作成している文字列が SetShot[1-4] であるのに対し、ファイル名は SetShot0[1-4] であると言ったためです。変化する

NSString *tmpFileName = [[NSString alloc] initWithFormat:@"SetShot%d", randomNumber];

として読む

 NSString *tmpFileName = [[NSString alloc] initWithFormat:@"SetShot0%d", randomNumber];
于 2012-05-15T04:17:03.850 に答える