从 Xcode 6 重新构建应用程序时出现 OSStatus 错误 2003334207
Posted
技术标签:
【中文标题】从 Xcode 6 重新构建应用程序时出现 OSStatus 错误 2003334207【英文标题】:OSStatus error 2003334207 while re-buiding the App from Xcode 6 【发布时间】:2015-06-26 07:58:56 【问题描述】:我正在使用 AVAudioPlayer 播放保存在 Iphone 的 Document 目录中的录制音频。 当我第一次录制音频然后播放时,它工作正常(设备连接到系统并且应用程序正在通过 Xcode 运行)。
但是当我通过 Xcode 停止正在运行的应用程序并再次通过 Xcode 运行应用程序时,我收到错误 Error Domain=NSOSStatusErrorDomain Code=2003334207 "The operation couldn’t be completed. (OSStatus error 2003334207.)"
文件位置:file:///var/mobile/Containers/Data/Application/410AB24E-5FB0-4401-AC59-3C03D676E951/Documents/26-06-2015--13:10:47.m4a
我的代码:
fileLocation = @"file:///var/mobile/Containers/Data/Application/410AB24E-5FB0-4401-AC59-3C03D676E951/Documents/26-06-2015--13:10:47.m4a"
NSURL *fileUrl = [NSURL URLWithString:fileLocation];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileUrl error:&error];
[player setDelegate:self];
NSURL *fileUrl = [NSURL URLWithString:fileName];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileUrl error:&error];
[player setDelegate:self];
我正在使用 Xcode 6 并在 ios 8 中运行应用程序
P.S:我已经阅读了很多与此问题相关的文档以及 statckoverflow 本身的几个问题,但我没有找到答案。
【问题讨论】:
【参考方案1】:在 iOS8 下,您保存的路径在启动时将无效。您看到的 id “410AB24E-5FB0-4401-AC59-3C03D676E951”会随着每次启动而改变。
解决方案是保存文件名而不是完整路径,并通过获取 Documents(或 tmp)文件夹的路径并将文件名附加到它来重新创建 URL 或完整路径。
【讨论】:
每次更新 App 或设备的操作系统后,该 ID 是否会更改? 每次启动应用后。换句话说,当您的应用程序终止,然后由用户重新启动时(或者当您正在测试并在 Xcode 中运行时),该 ID 将发生变化。 很容易检查。使用NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
获取 Documents 目录的新路径。将其与您拥有的最后一个进行比较。启动应用的超时时间会有所不同。
是的,我已经检查过了。非常感谢。 :)
检查并确保您使用的是 fileURL 而不是纯 URL。代替- URLWithString:
,使用:- fileURLWithPath:isDirectory:
、- initFileURLWithPath:isDirectory:
或+ fileURLWithPath:
以上是关于从 Xcode 6 重新构建应用程序时出现 OSStatus 错误 2003334207的主要内容,如果未能解决你的问题,请参考以下文章
尝试在模拟器或设备上构建 React Native 项目时出现 Xcode 错误
在 Xcode 4 下构建 PhoneGap 时出现未定义符号错误?