Я использую 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];
}
Кто-нибудь когда-нибудь получал что-то подобное?