2011-10-18 17 views
5

मेरा ऐप उपयोगकर्ता की जानकारी/प्राथमिकताओं के एक एन्क्रिप्टेड डेटा को फ़ाइल में लिखता है, और अगली बार ऐप खोले जाने पर उस फ़ाइल से पढ़ता है।आईओएस: फ़ाइल में सहेजना एमुलेटर पर काम करता है लेकिन डिवाइस पर नहीं

एक फ़ाइल लिखी:

- (BOOL)writeFile:(NSString *)data:(NSString *)fileName { 
    return [data writeToFile:fileName 
       atomically:YES 
        encoding:NSUTF8StringEncoding error:nil]; 
} 

एक फ़ाइल पढ़ना:

- (NSString *)readFile:(NSString *)fileName { 
    NSData *data = [NSData dataWithContentsOfFile:fileName]; 
    NSString *str = [[[NSString alloc] initWithData:data 
             encoding:NSUTF8StringEncoding] autorelease]; 
    return str; 
} 

यह एमुलेटर पर ठीक काम करता है। फ़ाइलों को अपेक्षित के रूप में लिखा और पढ़ा जाता है। क्या फाइलों को पढ़ने/लिखने के लिए मुझे कुछ भी सेट करना है?

+1

आप 'fileName' के रूप में क्या गुजर रहे हैं? – jrturton

+1

@jrturton कहते हैं, आप किस फाइल को लिख रहे हैं? यदि यह एप्लिकेशन की निर्देशिका में नहीं है, तो वास्तविक डिवाइस इसे अनुमति नहीं देगा, लेकिन शायद सिम्युलेटर करता है? – Kevin

+0

@ केविन मैं ऐप के लिए अपनी फाइल नहीं बना सकता? – dee

उत्तर

7

फ़ाइल नाम दस्तावेज़ निर्देशिका में होना चाहिए। सिम्युलेटर के पास डिवाइस पर जितनी फाइलें लिख सकती हैं, इस पर कई प्रतिबंध नहीं होंगे। ऊपर अपने कार्यों में

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"myfilename.extension"]; 

इस दर्रे और आप ठीक होना चाहिए:

इस प्रकार दस्तावेजों निर्देशिका प्राप्त करें।

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