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 に答える