2010-11-09 16 views
6

मुझे लगता है कि मेरी परियोजना (Deck.txt) में शामिल है एक पाठ फ़ाइल के लिए एक सूची इस प्रकार है प्रासंगिक कोड है लिखने के लिए कोशिश कर रहा हूँ:iPhone देव के लिए Xcode का उपयोग कर एक पाठ फ़ाइल के लिए एक स्ट्रिंग लेखन

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Deck" ofType:@"txt"]; 
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath]; 
deck = [[NSString alloc]initWithFormat: @"%@\n%@ %@",file, txtQuantity.text, cardName]; 
//[deck writeToFile:filePath atomically:YES encoding:NSStringEncodingConversionAllowLossy error:nil]; 
[fileHandle writeData:[deck dataUsingEncoding:NSUTF8StringEncoding]];     
[fileHandle closeFile]; 

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

उत्तर

16

यदि आपको पहले से ही अपना एनएसडीएटा उदाहरण मिल गया है, तो आप निश्चित रूप से डिवाइस पर निर्मित दस्तावेज़ निर्देशिका में डेटा लिख ​​सकते हैं। थोड़ी सी खोज के साथ, जांच उद्देश्यों के लिए सिम्युलेटर से चलने पर स्थान ढूंढना मुश्किल नहीं है।

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docDir = [paths objectAtIndex: 0]; 
NSString *docFile = [docDir stringByAppendingPathComponent: @"deck.txt"]; 

//your variable "deck" 
[deck writeToFile: docFile atomically: NO]; 

यह निश्चित रूप से आपकी दस्तावेज़ निर्देशिका में एक फ़ाइल को लिख देगा। यह केवल निर्देशिका से पढ़ने के लिए अपने कोड को बदलने का मामला होना चाहिए।

2

आप अपने बंडल पथ के अंदर फ़ाइलों को नहीं लिख सकते हैं। आप NSDocumentDirectory चाहते हैं।

+0

आपका लिंक इस पोस्ट पर वापस जाता है। – achi

+0

वहां। फिक्स्ड। ;-) –

2

सेटअप इस के साथ अपने filepath (एक उदाहरण के रूप में):

NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/dt"]; 

तो इस तरह डाटा स्टोर:

[VARNAME writeToFile:filePath atomically:YES (or NO)]; 

मुझे लगता है कि आप और अधिक बस की तरह किया जा सकता है ऐसा करने के लिए कोशिश कर रहे हैं इस।

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