Objective-C создает текстовый файл со строкой - PullRequest
14 голосов
/ 30 ноября 2009

Я пытаюсь создать текстовый файл с содержимым строки на моем рабочем столе. Я не уверен, правильно ли я делаю, я не получаю ошибок, но это тоже не работает ...

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);
NSString *desktopDirectory=[paths objectAtIndex:0];
NSString *filename = [desktopDirectory stringByAppendingString: @"file.txt"];
[myString writeToFile:filename atomically:YES encoding: NSUTF8StringEncoding error: NULL];

Ответы [ 3 ]

45 голосов
/ 22 марта 2011
//Method writes a string to a text file
-(void) writeToTextFile{
    //get the documents directory:
    NSArray *paths = NSSearchPathForDirectoriesInDomains
        (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    //make a file name to write the data to using the documents directory:
    NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", 
                                                  documentsDirectory];
    //create content - four lines of text
    NSString *content = @"One\nTwo\nThree\nFour\nFive";
    //save content to the documents directory
    [content writeToFile:fileName 
                     atomically:NO 
                           encoding:NSStringEncodingConversionAllowLossy 
                                  error:nil];

}
13 голосов
/ 30 ноября 2009

Вы не знаете, получаете ли вы какие-либо ошибки, потому что игнорируете возвращенное значение YES / NO метода -writeToFile: ... и не указываете на него указатель ошибок, чтобы записать любой возможный сбой. Если метод возвращает NO, вы должны проверить (и обработать или представить) ошибку, чтобы увидеть, что пошло не так.

По-видимому, сбой происходит из-за пути, который вы построили. Попробуйте -stringByAppendingPathComponent: вместо -stringByAppendingString: ... this и связанные с ним методы правильно обрабатывают пути.

Возможно, файл действительно создается (т. Е. Вы, возможно, не получите никаких ошибок). Я предполагаю, что файл создан где-то вроде "~ / Desktopfile.txt", так как вы используете -stringByAppendingString: не рассматривает строку как путь, разделенный косой чертой. Проверьте вашу домашнюю папку - держу пари, что файл там.

0 голосов
/ 13 августа 2011

проблема в том, что строка каталога рабочего стола заканчивается ничем (нет /). Проверьте это (на iPhone) с помощью UIAlertview.

...