NSURL isFileURL始终返回NO

eri*_*ell 13 filesystems nsurl nsfilemanager ios avcapturemoviefileoutput

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

NSString* filePathString = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

NSLog(@"%i", [[NSURL URLWithString:filePathString] isFileURL]);
NSLog(@"%@", filePathString);
Run Code Online (Sandbox Code Playgroud)

输出:

0

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

这意味着此网址不是文件网址.显然,它是.


背景:

我正在尝试使用AVCaptureMovieFileOutput将电影录制内容写入文件,但我提供的文件网址提供错误:

*由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'* - [AVCaptureMovieFileOutput startRecordingToOutputFileURL:recordingDelegate:] - 无法记录到URL/var/mobile/Applications/28ADFC19-874C-4304-94B5-F6441CAE9FAD/Documents/media/CrKNjNhe9so2LRnD9iHK .mov因为它不是文件URL.

对我来说,这看起来像一个文件URL,就像原始示例一样.是什么赋予了?

rma*_*ddy 32

如果NSURL要从文件路径创建,则必须使用NSURL fileURLWithPath:.使用URLWithString假定字符串是非文件URL.

An NSURL仅在文件URL开头时才是file://.