我正在使用 GTMLogger 并且有以下代码,自从迁移到 iOS5.1 后似乎崩溃了。奇怪的是我似乎无法重现它,但我知道它发生在许多用户身上,所以我不确定如何跟踪它。
[NSConcreteFileHandle writeData:]: Bad file descriptor
我可以尝试/抓住它,但它不是一种解决方案,而是一种解决方法。
这是可疑的部分:
NSFileHandle *file = [NSFileHandle fileHandleForUpdatingAtPath:logFilePath];
if (file)
{
unsigned long long maxFileOffset = [file seekToEndOfFile];
if (maxFileOffset > kDebugFileMaxSize)
{
// read file, trunicate, save, reopen
[file seekToFileOffset:maxFileOffset - kDebugFileMaxSize];
NSMutableData *data = [NSMutableData dataWithData:[file readDataToEndOfFile]];
[file seekToFileOffset:0];
[file writeData:data];
[file truncateFileAtOffset:kDebugFileMaxSize];
[file seekToEndOfFile];
}
}
else
{
[[NSFileManager defaultManager] createFileAtPath:logFilePath contents:nil attributes:nil];
file = [NSFileHandle fileHandleForUpdatingAtPath:logFilePath];
}
有人得到过这样的东西吗?