【问题标题】:NSData is returning nil for same file at different filepathsNSData 在不同的文件路径中为同一文件返回 nil
【发布时间】:2015-04-28 20:08:31
【问题描述】:

我将.aiff 格式的音频文件存储在两个不同的文件夹中。 NSData 为一个文件路径返回 nil,即使两个文件路径都有音频文件。我仔细检查了文件路径。

路径是这样的:

//url1 file:///Users/VenkataManiteja/Library/Developer/CoreSimulator/Devices/80B8117E-D2C9-4B42-8A76-9A89A10FB1C1/data/Containers/Data/Application/FD17AD64-EAF9-4578-B50D-0B5BF6F2DEFF/Documents/28Apr15_090827AM.aif
//url2 file:///Users/VenkataManiteja/Library/Developer/CoreSimulator/Devices/80B8117E-D2C9-4B42-8A76-9A89A10FB1C1/data/Containers/Data/Application/B60CF270-73CA-4BE4-BA75-B2AC3642360D/Documents/28Apr15_090827AM.aif

NSError *err;
data = [NSData dataWithContentsOfURL:url1]; //this is working fine
audioPlayer = [[AVAudioPlayer alloc] initWithData:data error:&err];
data = [NSData dataWithContentsOfURL:url2]; //nsdata is returning nil  

谁能告诉我为什么url2 得到nil NSData

【问题讨论】:

  • url2 文件可能存在但为空。在 Finder 中检查文件大小。
  • 不,它不是空的。我检查了文件。
  • 你的问题是你使用dataWithContentsOfURL:而不是dataWithContentsOfURL:options:error:

标签: ios objective-c ios-simulator nsdata nsurl


【解决方案1】:

您正在尝试读取正在运行的应用程序沙箱之外的文件。虽然两者都可能存在,但可能您正在运行 ID 为“FD17AD64-EAF9-4578-B50D-0B5BF6F2DEFF”的应用程序,这就是为什么该 URL 有效而另一个无效的原因。

我建议观看 WWDC 视频 A Practical Guide to the App Sandbox,了解有关安全模型如何工作的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 2019-03-05
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多