[NSConcreteFileHandle writeData:]: неправильный дескриптор файла - вылетает приложение при запуске - PullRequest
1 голос
/ 18 марта 2012

Я использую 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];
}

Кто-нибудь когда-нибудь получал что-то подобное?

1 Ответ

0 голосов
/ 09 апреля 2012

Я в конце концов просто избавился от GTMLogger и перешел на какой-то другой регистратор, спасибо всем, кто мог прочитать это:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...