2009-11-30 12 views
11

के साथ एक टेक्स्ट फ़ाइल बना रहा है, मैं अपने डेस्कटॉप पर एक स्ट्रिंग की सामग्री के साथ एक टेक्स्ट फ़ाइल बनाने की कोशिश कर रहा हूं। मुझे यकीन है कि अगर मैं इसे सही कर रहा हूँ, मैं त्रुटियों नहीं मिलता है नहीं कर रहा हूँ, लेकिन यह या तो काम नहीं करता है ...उद्देश्य-सी एक स्ट्रिंग

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES); 
NSString *desktopDirectory=[paths objectAtIndex:0]; 
NSString *filename = [desktopDirectory stringByAppendingString: @"file.txt"]; 
[myString writeToFile:filename atomically:YES encoding: NSUTF8StringEncoding error: NULL]; 

उत्तर

13

आप किसी भी त्रुटि मिल रहा है तो पता नहीं है, क्योंकि आप 'writeToFile: ... विधि के लौटे हुए YES/NO मान को अनदेखा कर रहे हैं, और इसे कोई त्रुटि सूचक नहीं दे रहा है जिसमें किसी भी संभावित विफलता को रिकॉर्ड किया जा सके। यदि विधि नहीं लौटाती है, तो आप यह देखने के लिए त्रुटि को जांच (और संभाल या प्रस्तुत) करेंगे कि क्या गलत हुआ।

अनुमान में, विफलता आपके द्वारा बनाए गए पथ के कारण है। Try -stringByAppendingPathComponent: -stringByAppendingString के बजाय: ... यह और इसके संबंधित तरीके पथ को सही तरीके से संभालते हैं।

फ़ाइल शायद वास्तव में बनाई जा रही है (यानी, आपको बाद में कोई त्रुटि नहीं मिल रही है)। मेरा अनुमान है कि फ़ाइल का उपयोग कहीं भी "~/डेस्कटॉपfile.txt" जैसा होता है क्योंकि आपके द्वारा उपयोग किया जाता है-stringByAppendingString: स्ट्रिंग को अलग-अलग पथ के रूप में नहीं मानता है। अपने घर फ़ोल्डर की जांच करें - मैं फाइल को वहां शर्त लगाऊंगा।

39
//Method writes a string to a text file 
-(void) writeToTextFile{ 
    //get the documents directory: 
    NSArray *paths = NSSearchPathForDirectoriesInDomains 
     (NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    //make a file name to write the data to using the documents directory: 
    NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", 
                documentsDirectory]; 
    //create content - four lines of text 
    NSString *content = @"One\nTwo\nThree\nFour\nFive"; 
    //save content to the documents directory 
    [content writeToFile:fileName 
        atomically:NO 
          encoding:NSStringEncodingConversionAllowLossy 
            error:nil]; 

} 
+0

बिल्कुल सही आदमी ... धन्यवाद। –

+0

यह पूरी तरह से काम करता है – MayorMonty

+0

धन्यवाद, दोस्त! उपयोग में सरल और आसान। – Felipe

-3

समस्या यह है कि डेस्कटॉप निर्देशिका स्ट्रिंग कुछ भी नहीं (नहीं /) में समाप्त होती है। UIAlertview का उपयोग कर इसे देखें (एक आईफोन पर)।

+1

के समान मान होता है? 1.) यदि आप ऐसा करते हैं तो आपको '/ 'का उपयोग करने की आवश्यकता नहीं है। 2.) आप UIAlertView कहां देखते हैं? मैं नही। 3.) इस सवाल को लगभग 2 साल पहले पूछा गया था। –

+0

.. हम भी आईओएस पर "डेस्कटॉप" के साथ कुछ करने की जांच क्यों करेंगे? आईओएस में ऐसी कोई बात नहीं है। –