строка не записывается в файл - iPhone - PullRequest
0 голосов
/ 06 июля 2011

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

это мой код:

NSString *myString; //Assuume the string you want to write is this
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.txt"];
[myString writeToFile:path atomically:YES];

Пожалуйста, кто-нибудь может направлять.

Ответы [ 3 ]

1 голос
/ 06 июля 2011
- (void) testStringReadWrite {
    NSString *myString = @"abcd efgh"; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.txt"];
    CFShow(path);
    NSError *error = nil;

    [myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
    if (error) {
        NSLog(@"%@",error);
    }


    NSString *readString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
    if (error) {
        NSLog(@"%@", error);
    } else {
        CFShow(readString);
    }

}
0 голосов
/ 05 сентября 2012

Просто мои два цента от OS X, я привык звонить writeToURL() вместо writeToFile().Оказывается, writeToFile() - это тот, который работал для iOS.

0 голосов
/ 06 июля 2011

writeToFile: atomically: устарел в iOS 2.0. Используйте writeToFile: atomically: encoding: error: вместо этого. Вы должны проверить содержимое строки, например, с помощью функции NSLog (). Неправильная инициализация может привести к сбою.

NSLog(@"%@", myString);
[myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
...