NSURL isFileURL总是返回NO

有人可以向我解释为什么下面的代码:

NSString* filePathString = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; NSLog(@"%i", [[NSURL URLWithString:filePathString] isFileURL]); NSLog(@"%@", filePathString); 

输出:

0

“在/ var /移动/应用/ 28ADFC19-874C-4304-94B5-F6441CAE9FAD /文档”

这意味着这个URL不是一个文件的URL。 显然是这样。


背景:

我正在尝试使用AVCaptureMovieFileOutput将影片录制到文件中,但是我certificate的文件url给出了错误:

*由于未捕获exception'NSInvalidArgumentException',原因:'* – [AVCaptureMovieFileOutput startRecordingToOutputFileURL:recordingDelegate:] – 无法logging到URL / var / mobile / Applications / 28ADFC19-874C-4304-94B5-F6441CAE9FAD / Documents / media / CrKNjNhe9so2LRnD9iHK .mov,因为它不是一个文件的URL。

就像原来的例子,这看起来像一个文件的URL。 是什么赋予了?

如果要从文件path创buildNSURL ,则必须使用NSURL fileURLWithPath: 使用URLWithString假定该string是非文件URL。

只有以file://开头的NSURL才是文件的URL。