Я хочу воспроизвести несколько аудиофайлов (* .wav), коснувшись соответствующих UImageViews.Каждое прикосновение к UIImageView изменяет «номер триггера» - который выбран.Имена аудиофайлов хранятся в массиве.Но я не могу понять, как написать метод для получения имен и воспроизведения правильных звуков без использования метода выбора регистра с избыточными кодовыми кодами для воспроизведения звуков:
#pragma mark -
-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
//Soundfile names in array arrAnimalde
arrAnimalde = [NSArray arrayWithObjects:@"Hund" ,@"Schwein" ,@"Ferkel", nil];
// here are some Views and their triggers
if([touch view] == img_hund){
trigAnimal = 0;
}
if([touch view] == img_schwein){
trigAnimal = 1;
}
if([touch view] == img_ferkel){
trigAnimal = 2;
}
/* here I'd like to have a method to send the triggernumber and get the
soundnameposition in the array to play the appropriate sound e. g. "Hund.wav" wich is the first entry
in the array : I tried something with "self.langKeys objectAtIndex:arrAnimalde" instead of the string in the following code but it
does'nt work
*/
//Sound
AudioServicesCreateSystemSoundID ((CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource: @"**here please the right name from the array**" ofType: @"wav"]], &soundFileObject);
AudioServicesPlaySystemSound (self.soundFileObject);
}
Или это совершенно неправильноподход к ее решению?
Второй связанный с этим вопрос: как я могу поместить три "if ([touch view] == img ..." в более короткий (select-case?) оператор?
Спасибо, что ответили!