दिलचस्प पोस्ट
साइथन और मिंगव के साथ कंपाइलिंग जीसीसी का उत्पादन करती है: त्रुटि: अपरिचित कमांड लाइन विकल्प '-एमएन-साइगविन' एक्लिप्स में जावा प्रोजेक्ट: टाइप करें java.lang.Object को हल नहीं किया जा सकता। यह अप्रत्यक्ष रूप से आवश्यक वर्ग वर्गों से संदर्भित है किसी भी वर्ण से मिलान करने के लिए नियमित अभिव्यक्ति 10 बार से अधिक दोहराई जा रही है एक मतदान प्रणाली में अद्वितीय आईपी सीएसएस होवर सीमा में इनलाइन तत्व थोड़ा समायोजित करता है ओएसजीआई क्या हल करता है? एक पेड़ बनाने के लिए स्वयं में घटक का प्रयोग करें नुकीले मान त्रुटि: एक अनुक्रम के साथ एक सरणी तत्व सेट करना यह संदेश एक मौजूदा क्रम के बिना प्रकट हो सकता है? मैं mysqldump से छोटी फ़ाइलों में कैसे आउटपुट कर सकता हूं? सी # कैसे माउस बटन के नीचे लूप कैसे किया जाता है पायथन लॉगर को लॉग करने के अलावा सभी संदेशों को stdout में आउटपुट करना कई उदाहरणों के लिए jQuery की तारीख पिकर लागू करें JQuery का उपयोग कर अक्षम विशेषता हटाएं? URL का अंतिम सेगमेंट क्या आईएमडीबी एक एपीआई प्रदान करता है?

के साथ फाइल लिखना विफल रहता है

मैं एक फाइल से सामग्री लेने की कोशिश कर रहा हूं और इसे दूसरे में लिखता हूं मैं ठीक पढ़ रहा हूं, लेकिन मैं इसे दूसरी फ़ाइल में लिखने में सक्षम नहीं हूं।

मेरे शब्दों के एक डेटाबेस है मैं शब्दों की संख्या के आधार पर अलग-अलग फाइलों में शब्दों को अलग करना चाहता हूं। सभी चार अक्षर शब्द एक फ़ाइल में जाते हैं, और इसी तरह। मैंने अपने संसाधनों में "4letter" नामक एक txt फ़ाइल जोड़ा है और मेरा कोड निम्न है:

NSError *error; //READ NSString *dbFile = [[NSBundle mainBundle] pathForResource:@"words" ofType:@"txt"]; NSString *test = [NSString stringWithContentsOfFile:dbFile encoding:NSUTF8StringEncoding error:&error]; //convert from string to array NSArray *lines = [test componentsSeparatedByString:@"\n"]; NSFileHandle *logFile = nil; logFile = [NSFileHandle fileHandleForWritingAtPath:[[NSBundle mainBundle] pathForResource:@"4letter" ofType:@"txt"]]; //Test if write works for (int i=0; i<5; i++) { NSString *randomAnagram = [[lines objectAtIndex:i] lowercaseString]; [logFile writeData: [randomAnagram dataUsingEncoding: NSNEXTSTEPStringEncoding]]; } 

वेब के समाधान से एकत्रित समाधान "के साथ फाइल लिखना विफल रहता है"

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

बेहतर समझने के लिए विशेष फ़ाइल सिस्टम प्रोग्रामिंग मार्गदर्शिका देखें
आईओएस में, आप अपने ऐप के बंडल में एक फ़ाइल में नहीं लिख सकते – पूरे बंडल केवल-पढ़ने के लिए है

ICloud बैकअप के संदर्भ में, नीचे दिए गए निर्देशिकाओं के उद्देश्य को बेहतर ढंग से समझने के लिए आईओएस डाटा स्टोरेज दिशानिर्देश पढ़ने पर विचार करें।

<Application_Home> /AppName.app

यह बंडल निर्देशिका है जिसमें एप ही शामिल है। इस निर्देशिका में कुछ भी मत लिखें छेड़छाड़ से बचने के लिए, बंडल निर्देशिका को अधिष्ठापन समय पर हस्ताक्षरित किया गया है। इस निर्देशिका में लिखने से हस्ताक्षर बदल जाता है और आपके ऐप को फिर से लॉन्च करने से रोकता है।


<Application_Home> / दस्तावेज़ /

महत्वपूर्ण उपयोगकर्ता दस्तावेज़ों और एप डेटा फ़ाइलों को स्टोर करने के लिए इस निर्देशिका का उपयोग करें। महत्वपूर्ण डेटा वह डेटा है जो आपके ऐप द्वारा पुन: निर्मित नहीं किया जा सकता है, जैसे उपयोगकर्ता द्वारा निर्मित सामग्री। इस निर्देशिका की सामग्री फ़ाइल साझाकरण के माध्यम से उपयोगकर्ता के लिए उपलब्ध कराई जा सकती है। इस निर्देशिका की सामग्री iTunes द्वारा समर्थित है I


<Application_Home> / Library /

यह निर्देशिका उन फ़ाइलों के लिए शीर्ष-स्तरीय निर्देशिका है जो उपयोगकर्ता डेटा फ़ाइलों के नहीं हैं। आप आमतौर पर कई मानक उप-निर्देशिकाओं में से एक में फ़ाइलें डालते हैं लेकिन आप उन फ़ाइलों के लिए कस्टम उपनिर्देशिका भी बना सकते हैं, जिन्हें आप बैकअप लेना चाहते हैं, लेकिन उपयोगकर्ता के संपर्क में नहीं हैं। आपको उपयोगकर्ता डेटा फ़ाइलों के लिए इस निर्देशिका का उपयोग नहीं करना चाहिए। इस निर्देशिका की सामग्री (कैश उप-डायरेक्टरी के अपवाद के साथ) iTunes द्वारा बैक अप की जाती है लाइब्रेरी निर्देशिका के बारे में अतिरिक्त जानकारी के लिए, "पुस्तकालय निर्देशिका स्टोर-विशिष्ट-विशिष्ट फ़ाइलें" देखें।

आईओएस स्टैंडर्ड डायरेक्टरीज में पूरी सूची (टीएमपी /, डॉक्यूमेंट्स / इनबॉक्स) देखें : कहां फ़ाइलें रहते हैं

अद्यतन करें
मैं NSFileManager विधि URLForDirectory:inDomain:appropriateForURL:create:error: उपयोग करता URLForDirectory:inDomain:appropriateForURL:create:error:

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

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

आपके ऐप का बंडल केवल-पढ़ने योग्य है मैं देख सकता था दो तरीके हैं:

1) दस्तावेज़ फ़ोल्डर में लिखें:

 NSArray *pathList = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path = [myPathList objectAtIndex:0]; 

2) SQLite डेटाबेस का उपयोग करें यह 1 के समान है (आप दस्तावेजों में डीबी को किसी भी तरह से सहेजना होगा), लेकिन आप SQL डेटाबेस का उपयोग कर रहे हैं मुझे लगता है कि यह बहुत अधिक txt और plist फ़ाइलों से बेहतर है: यहाँ विषय पर एक ट्यूटोरियल है ।

मैं निम्नलिखित कोड का उपयोग करता हूं:

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"set.txt"]; NSString *data=@"Kostas"; [data writeToFile:appFile atomically:YES]; NSString *myData = [NSString stringWithContentsOfFile:appFile]; NSLog(@"Data : %@ ",myData);