我在将NSsound
实例添加到NSMutableArray
时遇到问题
我得到的错误是我不能执行[soundFiles addObject:soundObj]
,因为soundObj
是nil
。但是,如果我执行[soundObj play]
,它将播放-因此它是一个实例。
//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
对象更快。 最佳答案
您可能已经知道了这一点,但是我想您是在创建所有要使用的声音文件之前编写代码的。因此,当您尝试为这些不存在的文件创建NSSound实例时,它设置为nil。很难进行故障排除,因为当您将NSSound指向不存在的文件时,它不会引发错误。
在创建所有我想使用的声音文件之前,我遇到了同样的问题。我只想发布我的答案,以帮助遇到此问题的其他任何人,因为Google搜索没有任何帮助。