2010-11-09 8 views
6

Staram się pisać listy do pliku tekstowego, który jest zawarty w moim projekcie (Deck.txt) właściwy kod jest następujący:Pisanie ciąg do pliku tekstowego przy użyciu Xcode dla iPhone Dev

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]; 

Po uruchomieniu kodu nie zostanie zapisany do dokumentu tekstowego, a przynajmniej nie ten zawarty w moim projekcie. Nadal utworzy listę i odczyta z pliku wszystkie dane, które próbuję napisać, ale kiedy zamknę program, żadne zmiany nie zostaną wprowadzone do dokumentu tekstowego. Każda pomoc będzie najbardziej ceniona.

Odpowiedz

16

Jeśli masz już swoją instancję NSData, możesz z pewnością zapisać dane w wbudowanym katalogu dokumentów na urządzeniu. Przy odrobinie poszukiwania nie jest trudno znaleźć lokalizację, gdy uruchamiany jest z symulatora w celu sprawdzenia.

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]; 

To na pewno napiszę do pliku w twoim katalogu dokumentów. Powinna to być tylko zmiana kodu do odczytu z katalogu.

2

Nie można pisać do plików wewnątrz ścieżki pakowania. Chcesz NSDocumentDirectory.

+0

Twój link wraca do tego postu. – achi

+0

Tam. Naprawiony. ;-) –

2

setup Twój filepath z tym (jako przykład):

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

następnie przechowywać dane tak:

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

myślę, co chce zrobić, można zrobić prościej jak to.

Powiązane problemy