私のiPhoneでmp3ファイルを再生するこのコードがあり、それは機能します:
if(i == 1) {
NSString *url = [[NSBundle mainBundle]pathForResource:@"fart" ofType:@"mp3"];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:url] error:NULL];
[player play];
} else if(i==2) {
NSString *url = [[NSBundle mainBundle]pathForResource:@"fart6" ofType:@"mp3"];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:url] error:NULL];
[player play];
} else {
NSString *url = [[NSBundle mainBundle]pathForResource:@"fart7" ofType:@"mp3"];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:url] error:NULL];
[player play];
}
変更されている行はNSString*urlだけです。コードをクリーンアップするために以下を実行しようとすると、「宣言されていない識別子'url'の使用」というエラーが発生します。
if(i == 1) {
NSString *url = [[NSBundle mainBundle]pathForResource:@"fart" ofType:@"mp3"];
} else if(i==2) {
NSString *url = [[NSBundle mainBundle]pathForResource:@"fart6" ofType:@"mp3"];
} else {
NSString *url = [[NSBundle mainBundle]pathForResource:@"fart7" ofType:@"mp3"];
}
player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:url] error:NULL];
[player play];
NSURLがNSString*urlが上記のif-elseステートメントから設定されていることを理解しないのはなぜですか?