11

Ai đó có thể giải thích cho tôi tại sao đoạn code sau:NSURL isFileURL luôn trả về NO

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

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

kết quả đầu ra:

"/ var/mobile/Applications/28ADFC19-874C-4304- 94B5-F6441CAE9FAD/Tài liệu "

Điều này có nghĩa là url này không phải là URL tệp. Rõ ràng, nó là.


Bối cảnh:

Tôi đang cố gắng sử dụng một AVCaptureMovieFileOutput để viết một quay phim vào một tập tin, nhưng url tập Tôi đang chứng minh cho các lỗi:

* Chấm dứt ứng dụng do ngoại lệ vô tình 'NSInvalidArgumentException', lý do: '* - [AVCaptureMovieFileOutput startRecordingToOutputFileURL: recordingDelegate:] - Không thể ghi vào URL/var/mobile/Applications/28ADFC19-874C-4304-94B5-F6441CAE9FAD/Documents/media/CrKNjNhe9so2LRnD9 iHK.mov vì đây không phải là URL của tệp. '

Dường như URL tệp cho tôi, giống như ví dụ ban đầu. Đưa cái gì?

Trả lời

25

Nếu bạn muốn tạo NSURL từ đường dẫn tệp, bạn phải sử dụng NSURL fileURLWithPath:. Việc sử dụng URLWithString giả định chuỗi là URL không phải là tệp.

An NSURL là URL của tệp chỉ khi URL bắt đầu bằng file://.

Các vấn đề liên quan