Как добавить строку в текстовый файл локального ресурса для iOS SDK - PullRequest
10 голосов
/ 12 августа 2011

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

Я создал файл log.rtf, но не могу записать в этот файл. Может кто-нибудь, пожалуйста, помогите мне добавить строку в этот файл без необходимости перезаписывать все это?

Ответы [ 3 ]

31 голосов
/ 06 сентября 2011

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

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *logPath = [[NSString alloc] initWithFormat:@"%@",[documentsDir stringByAppendingPathComponent:@"log.rtf"]];
NSFileHandle *fileHandler = [NSFileHandle fileHandleForUpdatingAtPath:logPath];
[fileHandler seekToEndOfFile];
[fileHandler writeData:[text dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandler closeFile];
0 голосов
/ 02 августа 2013

Таким образом, вы можете сделать это ..

+ (void)WriteLogWithString:(NSString *)log
{

        if(log != nil){

            NSString *locationFilePath = [self getLogFilePath];//access the path of file

            FILE *fp = fopen([locationFilePath UTF8String], "a");

            fprintf(fp,"%s\n", [log UTF8String]);

            fclose(fp);
        }

}
0 голосов
/ 12 августа 2011
- (void)log:(NSString *)message {
    NSMutableString *string = [[NSMutableString alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/log.txt", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]]];
    if (!string) string = [[NSMutableString alloc] init];
    [string appendFormat:@"%@\r\n", message];
    [string writeToFile:[NSString stringWithFormat:@"%@/log.txt", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...