11

किसी ने मुझे बता सकते हैं क्यों निम्नलिखित कोड:NSURL isFileURL हमेशा रिटर्न नहीं

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

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

आउटपुट:

"/ var/मोबाइल/आवेदन/28ADFC19-874C-4304- 94B5-F6441CAE9FAD/दस्तावेज़ "

इसका मतलब है कि यह यूआरएल एक फ़ाइल यूआरएल नहीं है। जाहिर है, यह है।


पृष्ठभूमि:

मैं एक फाइल करने के लिए एक फिल्म रिकॉर्डिंग लिखने के लिए एक AVCaptureMovieFileOutput उपयोग करने के लिए कोशिश कर रहा हूँ, लेकिन फ़ाइल यूआरएल मैं साबित कर रहा हूँ त्रुटि देता है:

* यूआरएल/var/मोबाइल/आवेदन/करने के लिए रिकॉर्ड नहीं कर सकते 28ADFC19-874C-4304-94B5-F6441CAE9FAD/दस्तावेज़/मीडिया/CrKNjNhe9so2LRnD9 - - [: recordingDelegate AVCaptureMovieFileOutput startRecordingToOutputFileURL] '*: न आया हुआ अपवाद' NSInvalidArgumentException ', कारण की वजह से एप्लिकेशन समाप्त iHK.mov क्योंकि यह एक फ़ाइल यूआरएल नहीं है। '

यह मूल उदाहरण की तरह मेरे लिए एक फ़ाइल यूआरएल जैसा दिखता है। क्या देता है?

उत्तर

25

यदि आप फ़ाइल पथ से NSURL बनाना चाहते हैं, तो आपको NSURL fileURLWithPath: का उपयोग करना होगा। URLWithString का उपयोग मानता है कि स्ट्रिंग एक गैर-फ़ाइल यूआरएल है।

एक NSURL केवल एक फ़ाइल यूआरएल है यदि यह file:// से शुरू होता है।

संबंधित मुद्दे