-2

我需要在 .txt 文件中编写一些日志,并且为了更清楚起见,我希望对一些文本进行着色。

我该怎么做这个把戏?

这是我的功能

+(void)writeInLogFile:(NSString *)strLog inFolder:(NSString *)folder fileName:(NSString *)fileName extension:(NSString *)extension
{
[[NSUserDefaults standardUserDefaults] synchronize];
BOOL LogFileOnIpad = [[NSUserDefaults standardUserDefaults] boolForKey:PREF_LOG_FILE_ON_IPAD];

if(LogFileOnIpad)
{
    //Create Directory
    NSString *path;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    path = [[paths objectAtIndex:0] stringByAppendingPathComponent:folder];
    NSError *error;
    if (![[NSFileManager defaultManager] fileExistsAtPath:path])    //Does directory already exists?
    {
        if (![[NSFileManager defaultManager] createDirectoryAtPath:path
                                       withIntermediateDirectories:YES
                                                        attributes:nil
                                                             error:&error])
        {
            NSLog(@"Create directory error: %@", error);
        }
    }

    NSString* filePath = [NSString stringWithFormat:@"%@/%@.%@",path,fileName,extension];

    if(![[NSFileManager defaultManager] fileExistsAtPath:filePath])
        [[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];

    NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
    [fileHandle seekToEndOfFile];
    [fileHandle writeData:[strLog dataUsingEncoding:NSUTF8StringEncoding]];
    [fileHandle closeFile];
}
}

这就是我使用我的功能的方式:

NSString* str = @"SOME STRING TO WRITE IN LOG FILE";
[HandleString writeInLogFile:str inFolder:LOGS_FOLDER fileName:[NSString stringWithFormat:@"%@_%@",LOGS_IPAD,[HandleString convertDayDateForLog]] extension:@"txt"];

我试图用 UIColor 声明一个标签并将其文本传递给我的函数,但没有成功。

4

3 回答 3

1

您正在创建的文件是纯文本文件,纯文本文件没有格式(粗体、斜体、彩色文本等)。您需要编写一个富文本文件 .rtf 才能为某些文本着色。虽然我不知道你会怎么做。

于 2014-12-30T16:25:40.233 回答
1

尝试编写带有 .html 扩展名的文件,而不是下面的示例:

<p style="color:red" /> Error Message </p>

<p style="color:green" /> Success Message </p>

并在任何浏览器中打开此文件,以便您可以清楚地看到您的日志消息。

于 2014-12-30T16:31:30.420 回答
0

在写入文件时,只需将扩展名更改为 rtf。之后,您可以在文件中写入颜色文本。

于 2014-12-30T21:13:05.283 回答