1

我正在使用 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];
}

有人得到过这样的东西吗?

4

1 回答 1

-1

我最终只是摆脱了 GTMLogger 并转移到其他一些记录器,感谢任何可能读过这篇文章的人:)

于 2012-04-09T12:56:35.407 回答