1

我无法将NSsound实例添加到一个NSMutableArray 我得到的错误是我不能做[soundFiles addObject:soundObj],因为soundObjnil。但如果我这样做[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播放它时创建对象更快。

4

1 回答 1

1

您现在可能已经弄清楚了,但我猜您是在创建所有想要使用的声音文件之前编写代码的。因此,当您尝试创建那些不存在的文件的 NSSound 实例时,它被设置为 nil。很难排除故障,因为当您将 NSSound 指向不存在的文件时,它不会引发错误。

在创建所有我想使用的声音文件之前,我遇到了同样的问题。我只是想发布我的答案以帮助遇到此问题的其他人,因为 Google 搜索没有任何帮助。

于 2014-02-19T05:28:15.090 回答