2013-07-17 2 views
1

У меня возникли проблемы при добавлении NSsound экземпляров в NSMutableArray Я получаю ошибку, что я не могу сделать [soundFiles addObject:soundObj], потому что soundObj является nil. Но если я сделаю [soundObj play], он будет играть - так что это экземпляр.Невозможно поставить экземпляр NSSound в NSMutableArray ионов какао

//Name of all the sounds to load in. 
sounds = [NSArray arrayWithObjects: 
     @"sound1", 
     @"sound2", 
     nil]; 


for (int i = 0; i < sounds.count; i++) { 
    NSString *soundName = [NSString stringWithString:sounds[i]]; 
    NSSound *soundObj = [NSSound soundNamed:soundName]; 
    [soundFiles addObject:soundObj]; 
} 

Если изменить [soundFiles addObject:soundObj] к [soundFiles addObject:soundName] это хорошо, так это то, что с попыткой передать NSSound

Я надеюсь, чтобы иметь возможность предварительной загрузки кучу очень коротких звуков, чтобы заставить их играть в минуту они называются. миллисекунды для этого проекта.

Я надеялся, что это позволит мне сделать [[soundFiles objectAtIndex:1] play] - поскольку я думал, что это приведет к тому, что он будет быстрее, чем создание объекта NSSound, когда пришло время его воспроизвести.

ответ

1

Возможно, вы уже догадались об этом, но я предполагаю, что вы писали код, прежде чем создали ВСЕ звуковые файлы, с которыми вы хотели работать. Поэтому, когда вы пытались создать экземпляр NSSound из этих несуществующих файлов, он получил значение nil. Трудно устранить неполадки, поскольку NSSound не выдает ошибку при указании на несуществующий файл.

У меня была идентичная проблема, пока я не создал все звуковые файлы, которые я хотел использовать. Я просто хотел опубликовать свой ответ, чтобы помочь кому-то еще, у кого эта проблема, потому что поиск Google не помогает никому, что помогает.

Смежные вопросы