2013-11-18 2 views
0

В моей IOS App я получаю следующее сообщение об ошибке:CGContextRestoreGState: недопустимый контекст 0x0 ошибка Xcode

CGContextRestoreGState: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update. 

Я думаю, что проблема приходит отсюда:

UIImage *buttonImage = [[UIImage imageNamed:@"tanButton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(18, 6, 18, 6)]; 

Это произошло на iPhone 5 подряд IOS 7.

Кто-нибудь знает, как я могу это решить?

Спасибо, С наилучшими пожеланиями

+0

Что делает ваша кнопка? – jhilgert00

+1

Случается ли это только на iOS 7? И если вы прокомментируете эту конкретную строку, ошибка исчезнет? Я прошу, потому что есть ошибки iOS 7, которые вызывают такое предупреждение. Исторически эта ошибка является результатом вызова функций Core Graphics вне 'drawRect' или созданного вручную' CGContextRef', но в iOS 7 есть элементы 'UIKit', которые ошибочно генерируют это предупреждение. – Rob

+0

Это кнопка, вызывающая функцию для проверки состояния некоторых переменных. Если я изменю кнопку на это: UIImage * buttonImage = [UIImage imageNamed: @ "tanButton.png"]; проблема решена. Но в этом случае я теряю стиль, который хочу достичь в кнопке. –

ответ

1

У меня была эта проблема тоже. Это было вызвано тем, что, когда вы делаете resizableImageWithCapInsets, для создания черепичного изображения нужны центральные пиксели, и если ваша высота изображения равна, например, 36, вы должны сделать: UIEdgeInsetsMake (18, 6, 17, 6), чтобы дать хотя бы один пиксель чтобы быть выгравированы в центре изображения.

Смежные вопросы