我将 .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了解有关安全模型如何工作的更多信息。
关于ios - NSData 为不同文件路径的同一文件返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29928927/