有人可以向我解释为什么以下代码:
Nsstring* filePathString = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)[0]; NSLog(@"%i",[[NSURL URLWithString:filePathString] isFileURL]); NSLog(@"%@",filePathString);
输出:
0
“在/ var /移动/应用/ 28ADFC19-874C-4304-94B5-F6441CAE9FAD /文档”
这意味着此网址不是文件URL.显然是这样的.
背景:
我试图使用一个AVCaptureMovieFileOutput写一个电影录音到一个文件,但是我证明的文件url给出了错误:
*由于未知的异常’NSinvalidargumentexception’终止应用程序,原因:’* – [AVCaptureMovieFileOutput startRecordingToOutputFileURL:recordingDelegate:] – 无法记录到URL / var / mobile / Applications / 28ADFC19-874C-4304-94B5-F6441CAE9FAD / Documents / media / CrKNjNhe9so2LRnD9iHK .mov因为它不是一个文件URL.“
这看起来像一个文件URL给我,就像原始的例子.是什么赋予了?
解决方法
如果要从文件路径创建NSURL,则必须使用NSURL fileURLWithPath:.使用URLWithString假定该字符串是非文件URL.
NSURL只有当文件以file://开始时才是文件URL.