Нулевой графический контекст

Вот фрагмент кода, который я использую:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^
{

    UIGraphicsBeginImageContextWithOptions(irect.size, YES, 0.0 );
    CGContextRef context = UIGraphicsGetCurrentContext();
    if (context == 0)
        NSLog (@"Null Graphics Context") ;
    else
        NSLog (@"OK") ;

    . . . .
    // Various drawing functions

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
  }) ;

Я обнаружил, что каждый второй вызов UIGraphicsGetCurrentContext возвращает NULL. Я получаю это сообщение на консоли.

CGContextRestoreGState: недопустимый контекст 0x0. Это серьезная ошибка. Это приложение или используемая им библиотека использует недопустимый контекст и тем самым способствует общему снижению стабильности и надежности системы. Это уведомление любезно: пожалуйста, исправьте эту проблему. Это станет фатальной ошибкой в ​​следующем обновлении.

Что может привести к тому, что UIGraphicsGetCurrentContext вернет недопустимый графический контекст?


person user3344003    schedule 07.04.2014    source источник
comment
В вашем вопросе недостаточно информации. Вы проверили этот пост? stackoverflow.com/questions/12424690/   -  person Anthony Kong    schedule 08.04.2014


Ответы (1)


Как следует из комментария, ответ заключается в том, что CGRect, переданный UIGraphicsBeginImageContextWithOptions, имеет нулевую площадь. Очевидно, это приводит к тому, что не удается создать графический контекст.

person user3344003    schedule 07.04.2014
comment
У меня была такая же проблема, и это был ответ, проверьте, не равна ли ширина И высота 0. - person MLBDG; 07.05.2017