' NSInvalidArgumentException',原因:'资源beep.wav无法加载' iOS Sprite Kit

时间:2015-01-02 10:10:17

标签: ios ipad audio sprite-kit skaction

我用Sprite Kit(Objective-C)为iPad制作游戏。

我经常使用以下代码(例如):

[self runAction:[SKAction playSoundFileNamed:@"beep.wav" waitForCompletion:YES]];

一切顺利,直到一段时间后我的应用程序崩溃,我突然出现以下错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Resource beep.wav can not be loaded'

我不知道为什么,因为声音可以在错误之前正确播放。

其他声音也会出现同样的错误,但总是在一段时间后发生。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您应该尝试预加载声音,并在控制器中保留对动作的引用。

@property (strong, nonatomic) SKAction *playMySound;

并初始化它:

self.playMySound = [SKAction playSoundFileNamed:@"beep.mp3" waitForCompletion:NO];

并使用它:

[self runAction:playMySound]

您将保留对该操作的引用,并且每次您希望播放声音时都会避免重新加载文件。