NSData 为不同文件路径的同一文件返回 nil

NSData is returning nil for same file at different filepaths

我将 .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

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

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