Как добавить строку в файл локального ресурса txt для iOS sdk

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

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

+ (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);
        }

}