2011-11-01 6 views
7

मैं अपने आईफोन पर एक टेक्स्ट फ़ाइल में अपना खुद का लॉग लिखना चाहता हूं। मैंने एक त्वरित विधि लिखा है जो एक फाइल को एक स्ट्रिंग लिखता है। अभी यह इसे दस्तावेज़ निर्देशिका में सहेजता है, जो कि डिवाइस पर उतरने के लिए दर्द होने जा रहा है, क्योंकि मैं इसे ब्राउज़ नहीं कर सकता। क्या मैंने इसे लिखने के बाद डिवाइस को तुरंत बंद करने का एक बेहतर तरीका है?उद्देश्य-सी: डिवाइस पर टेक्स्ट फ़ाइल बनाएं और फ़ाइल को आसानी से पुनर्प्राप्त करें

/** 
* Logs a string to file 
* 
* @version $Revision: 0.1 
*/ 
+ (void)logWithString:(NSString *)string { 

    // Create the file 
    NSError *error; 

    // Directory 
    NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; 
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"log.txt"]; 

    // Get the file contents 
    NSData *localData = [NSData dataWithContentsOfFile:filePath]; 
    if (localData) { 
     NSString *logString = [[NSString alloc] initWithData:localData encoding:NSUTF8StringEncoding]; 
     string = [logString stringByAppendingFormat:@"%@\n", string]; 
     [logString release]; 
    } 

    // Write to the file 
    [string writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error]; 

}//end 
+0

सिडेनोटे- अगर लॉग फ़ाइल लगभग 500 केबी से अधिक हो जाती है या तो यह वास्तव में अक्षम हो जाएगी। केवल परिवर्तन लिखने पर विचार करें (अन्य एपीआई का उपयोग करके) – FeifanZ

उत्तर

10

Xcode में आपके आवेदन लक्ष्य के निर्माण की जानकारी के लिए Application supports iTunes file sharing जोड़ें:

enter image description here

उसके बाद, आप आसानी से ब्राउज़ कर सकते हैं, को पुनः प्राप्त करने और iTunes से ऐप्लिकेशन द्वारा बनाया गया कोई भी फ़ाइलों को हटाने, सही Devices > Your device > Apps > File Sharing के तहत:

enter image description here

+0

ओह। मुझे इसे एक परीक्षण सुविधा के रूप में पसंद है। असीमित +1 –

+0

बिल्कुल सही! यह ठीक वही है जिसकी तलाश मुझे थी। मैं उसके बारे में जानता था, लेकिन भूल गया कि मैं इस उद्देश्य के लिए इसका इस्तेमाल कर सकता हूं। धन्यवाद! –

0

आपको अब तक कितने लॉग बनाए गए हैं और उस पर पूर्वाग्रहित प्रत्येक लॉग के लिए एक नया नाम बनाना होगा।

तो आप अपने अंतिम बनाए गए लॉग नाम को NSUserDefaults में स्ट्रिंग के रूप में सहेज सकते हैं और उस के अंत से नंबर प्राप्त कर सकते हैं और अगले नाम के लिए उस कैप्चर किए गए int पर एक जोड़ सकते हैं।

तो अगर आपके पास @ "Log4" आपको लगता है कि में से 4 हो और इतना है कि अगले लॉग "Log5" नाम दिया गया है

बस मेरे 2 सेंट यह 5 कर सकते हैं: पी

+0

हाँ, हर बार जब मैं अपने ऐप में प्रक्रिया शुरू करता हूं तो मैं एक नया लॉग बनाउंगा। –

0

संबंध में प्रश्न

iExplorer, पहले आईफोन एक्सप्लोरर आपको अपने डिवाइस को जेलब्रैक किए बिना अपने दस्तावेज़ फ़ोल्डर समेत अपने ऐप्स देखने की अनुमति देता है।

मेरे अनुभव में (पुराने संस्करण के बावजूद), फोन से फाइलें प्राप्त करना थोड़ा अस्थायी हो सकता है (यानी मैं अपने डेस्कटॉप पर एक फ़ाइल खींचता हूं और हालांकि यह फ़ाइल बनाता है, यह किसी भी को नहीं लिखता है डेटा), आप अपने डिवाइस से फाइलें प्राप्त कर सकते हैं।

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