15

誰かが次のコードの理由を説明できますか:

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

NSLog(@"%i", [[NSURL URLWithString:filePathString] isFileURL]);
NSLog(@"%@", filePathString);

出力:

0

「/var/mobile/Applications/28ADFC19-874C-4304-94B5-F6441CAE9FAD/ドキュメント」

これは、この URL がファイル URL ではないことを意味します。明らかに、そうです。


バックグラウンド:

AVCaptureMovieFileOutput を使用してムービーの記録をファイルに書き込もうとしていますが、証明しているファイルの URL で次のエラーが発生します。

* キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '* -[AVCaptureMovieFileOutput startRecordingToOutputFileURL:recordingDelegate:] - URL に記録できません.mov ファイルの URL ではないため。

元の例と同じように、これはファイルの URL のように見えます。何を与える?

4

1 に答える 1

37

NSURLファイル パスからを作成する場合は、 NSURL fileURLWithPath:. の使用URLWithStringは、文字列がファイル以外の URL であることを前提としています。

NSURLで始まる場合のみ、 はファイル URLですfile://

于 2012-11-26T00:43:48.473 に答える