Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 由于资源未正确随机加载,应用程序崩溃_Ios_Objective C_Audio_Crash - Fatal编程技术网

Ios 由于资源未正确随机加载,应用程序崩溃

Ios 由于资源未正确随机加载,应用程序崩溃,ios,objective-c,audio,crash,Ios,Objective C,Audio,Crash,基本上,我正在用XCode 5中的Obj-C在精灵工具包上制作一个游戏 每当我点击屏幕时,我都会使用SKAction来播放声音文件 [self runAction:[SKAction playSoundFileNamed:@"tap.caf" waitForCompletion:NO]]; 以前我用的是mp3文件,我有相同的声音,错误总是在大约50次点击后随机出现,至少,有时更多,有时更少,有时甚至不会导致错误 所以我阅读了苹果的文档,决定转换成ima4.caf扩展。 我不确定这是否有什么不同

基本上,我正在用XCode 5中的Obj-C在精灵工具包上制作一个游戏 每当我点击屏幕时,我都会使用SKAction来播放声音文件

[self runAction:[SKAction playSoundFileNamed:@"tap.caf" waitForCompletion:NO]];
以前我用的是mp3文件,我有相同的声音,错误总是在大约50次点击后随机出现,至少,有时更多,有时更少,有时甚至不会导致错误

所以我阅读了苹果的文档,决定转换成ima4.caf扩展。 我不确定这是否有什么不同,它发生的次数要少得多。我还有两个音频文件是通过SKActions播放的,没有一个加载失败

有什么建议吗

调试控制台输出如下:

2014-07-05 16:14:15.716 GoUp[777:60b] *** Terminating app due to uncaught exception
 'Failed to Load Resource', reason: 'Resource tap.caf can not be loaded'
*** First throw call stack:
(0x306d7fd3 0x3ae86ccf 0x306d7f15 0x32e09e55 0x32dc2b2d 0xf9331 0x32de69ab 0x32f28651
0x32f236eb 0x32ef88ed 0x32ef6f97 0x306a325b 0x306a272b 0x306a0f1f 0x3060bf0f 0x3060bcf3
0x35510663 0x32f5716d 0xfcd61 0x3b393ab7)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 
为了补充一点,我试图通过设置RepeatForWaitForComplete:YES SKAction播放声音文件来检查文件是否有故障(我确实每次都在等待它完成,否则,它可能会由于大量操作而崩溃)。它运行了至少5分钟没有问题,直到我决定停止应用程序。不确定这是否确认文件没有损坏


编辑2:刚尝试了一个不同的声音文件,但又用了一个不同的文件:(

我没有解释为什么会发生“崩溃”

但是,您可以通过声明声音并将其加载到现金中来轻松解决此问题(避免每次播放声音时加载声音),如下所示:

@property (strong, nonatomic) SKAction *aSound;
在下午 在顶部点火:

self.aSound = [SKAction playSoundFileNamed:@"FileName.wav" waitForCompletion:NO];
然后,每次您想播放声音时,都可以调用它:

[self runAction:_aSound];
出于某些原因, 我建议您将所有音频文件转换为未压缩的.Wav(允许处理器以更快的速度读取之前未解压缩的文件)
它还避免了C语言中从Xcode断点发现的许多异常。

NVM,我想我已经通过为每个声音设置一个SKAction并调用指向该动作的指针来修复了它。显然,文件不必每次都以这种方式加载。经过多次尝试后,仍然没有错误。