在iOS应用程序中创建日志文件

在iOS应用程序中创建日志文件,ios,file,logging,uitextview,Ios,File,Logging,Uitextview,因此,在我的应用程序中,我有一组数据要写入日志文件,然后在单击按钮时将其显示在UITextView中。我知道如何切换UITextView,但不知道如何创建和更新日志文件(在本地文件系统中)。感谢您的帮助。基本思想是创建文件,并在每次记录新行时附加到文件中。您可以很容易地这样做: 正在写入文件: NSString *content = @"This is my log"; //Get the file path NSString *documentsDirectory = [NSSearchPa

因此,在我的应用程序中,我有一组数据要写入日志文件,然后在单击按钮时将其显示在
UITextView
中。我知道如何切换UITextView,但不知道如何创建和更新日志文件(在本地文件系统中)。感谢您的帮助。

基本思想是创建文件,并在每次记录新行时附加到文件中。您可以很容易地这样做:

正在写入文件:

NSString *content = @"This is my log";

//Get the file path
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"myFileName.txt"];

//create file if it doesn't exist
if(![[NSFileManager defaultManager] fileExistsAtPath:fileName])
    [[NSFileManager defaultManager] createFileAtPath:fileName contents:nil attributes:nil];

//append text to file (you'll probably want to add a newline every write)
NSFileHandle *file = [NSFileHandle fileHandleForUpdatingAtPath:fileName];
[file seekToEndOfFile];
[file writeData:[content dataUsingEncoding:NSUTF8StringEncoding]];
[file closeFile];
阅读:

//get file path
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"myFileName.txt"];

//read the whole file as a single string
NSString *content = [NSString stringWithContentsOfFile:fileName encoding:NSUTF8StringEncoding error:nil];

我认为这是一个自动完成的类,因为没有运气创造了我自己的类

NSLogger是iOS 3.0及以上版本的轻量级类。它允许开发人员随时间轻松记录不同的“事件”,这些事件在本地存储为.txt文件


它不喜欢
[nsfilehandlefilehandleforupdateingatpath:logPath]
表示
logPath
使用了未声明的标识符。你能澄清一下吗?我的错误-用文件名替换日志路径。错了,谢谢。虽然我做到了您所说的一切,但当我想将数据添加到UITextView时,使用
logFile.text=[NSString stringWithContentsOfFile:fileName编码:NSUTF8StringEncoding错误:nil]没有显示任何内容。我做了一些调试,发现日志文件本身是空的。你知道为什么吗?我自己刚测试过,效果很好。确保变量
fileName
的读写值相同。另外,如果您在模拟器上进行测试,请查看
~/Library/Application Support/iPhone simulator/X.Y/Applications/ZZZZZ/Documents
,其中X.Y是运行它的模拟器版本(即4.3、5.0等),zzzzzzz是您的应用程序id(如果您记录文件名,则可以看到它),并查看您的文件是否存在。这将告诉你,如果你是创造错误的,或是阅读错误。