Я привык создавать такие звуки:
NSString *explosionsoundpath = [[NSBundle mainBundle] pathForResource:@"explosion" ofType:@"caf"];
CFURLRef explosionurl = (CFURLRef ) [NSURL fileURLWithPath:explosionsoundpath];
AudioServicesCreateSystemSoundID (explosionurl, &explosion1a);
AudioServicesCreateSystemSoundID (explosionurl, &explosion1b);
где Explosion1a и Explosion1b - переменные экземпляра, объявленные в файле .h с:
SystemSoundID explosion1a;
Всякий раз, когда я пытаюсь сделать этот процесс в массиве, подобном этому
NSString *plasmasoundpath = [[NSBundle mainBundle] pathForResource:@"plasmasound" ofType:@"caf"];
CFURLRef plasmaurl = (CFURLRef ) [NSURL fileURLWithPath:plasmasoundpath];
SystemSoundID plasmalaunch1;
AudioServicesCreateSystemSoundID (plasmaurl, &plasmalaunch1);
[self.plasmasounds addObject:plasmalaunch1];
Я получаю предупреждение:
"Passing argument 1 of addObject makes pointer from integer without a cast.
Если я поставлю символ & перед plasmalaunch1 в аргументе addObject, я получу
incompatible pointer type warning.
Я пытаюсь создать массив звуковых эффектов, которые позже можно будет воспроизвести, вызвав:
SystemSoundID sound = [self.plasmasounds objectAtIndex:i];
AudioServicesPlaySystemSound(sound);
Советы о том, как заставить эту работу (или лучший способ решить эту проблему) приветствуются!