2010-08-28 17 views
8

मैं अपनी डिस्क पर एक फ़ाइल में एक एनएसडीटा लिखने की कोशिश कर रहा हूं, मेरे पास निम्न कोड है और यह काम नहीं करता है, क्या मैं कुछ गलत कर रहा हूं?किसी फ़ाइल में NSData लिखें?

Boolean result = [data writeToFile:@"/Users/aryaxt/Desktop/test2.avi" atomically:YES]; 

test2.avi मौजूद नहीं है, मैं यह सोचते हैं कि writeToFile मेरे लिए यह पैदा करेगा

+3

एक तरफ ध्यान दें, आपको 'BOOL' का उपयोग करना चाहिए, उद्देश्य-सी में' बूलियन' नहीं। –

+4

'- [NSData लिखने के लिए फ़ाइल: विकल्प: त्रुटि'] (http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/Reference/Reference.html#//apple_ref/ डॉक्टर/यूआईडी/20000172-बीसीआईआईसीएचसीआई) और हमें बताएं कि किस त्रुटि की सूचना दी गई है। –

+2

(और कृपया डीबगर में सत्यापित करें कि डेटा शून्य नहीं है; शायद छवि भी शून्य है ;-) –

उत्तर

31

उपयोग करके देखें:

NSError *error = nil; 
[email protected]"/Users/aryaxt/Desktop/test2.avi"; 
[data writeToFile:path options:NSDataWritingAtomic error:&error]; 
NSLog(@"Write returned error: %@", [error localizedDescription]); 

इसलिए आपको लिखने विफल हो रहा है बता दूँगा।

+10

'त्रुटि' की जांच की जानी चाहिए यदि विधि 'NO' लौटाती है। फाउंडेशन कक्षाएं अन्य ऑब्जेक्ट्स या नकली त्रुटियों या त्रुटि तर्क में कचरा भी डाल सकती हैं। (यह कहना नहीं है कि वे * करते हैं, लेकिन यह प्रोग्रामर अनुबंध का हिस्सा है जो वे कर सकते हैं, इसलिए सावधान रहें।) –

+0

मेरे पास दस्तावेज़ों से थोड़ा सा सवाल है: चर्चा यह विधि उचित नहीं हो सकती है सार्वजनिक रूप से सुलभ फाइलों को लिखना। किसी सार्वजनिक स्थान पर डेटा को सुरक्षित रूप से लिखने के लिए, इसके बजाय NSFileHandle का उपयोग करें। अधिक जानकारी के लिए, सुरक्षित कोडिंग मार्गदर्शिका में फ़ाइल ऑपरेशंस को सुरक्षित करना देखें। " तो क्या मुझे अभी भी इसका उपयोग करना चाहिए या नहीं? – ColdSteel

+0

" सार्वजनिक रूप से सुलभ फाइलें "इसका क्या अर्थ है? – ColdSteel

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