Objective-C создание текстового файла со строкой

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

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

Ответ 1

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

}

Ответ 2

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

Угадай, что неудача вызвана тем, что вы построили. Try -stringByAppendingPathComponent: вместо -stringByAppendingString:... этот и связанные с ним методы корректно обрабатывают пути.

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

Ответ 3

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