CGContextSaveGState: неверный контекст 0x0 Ошибка только на устройстве
Обновление: я использую XCode 7 Beta с Swift 2.0
Когда я пытаюсь запустить свое приложение на iPhone, я получаю следующие 3 ошибки:
<Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Когда я включаю переменную CG_CONTEXT_SHOW_BACKTRACE, я получаю это:
Backtrace:
<<redacted>+40>
<<redacted>+432>
<<redacted>+144>
<<redacted>+172>
<<redacted>+332>
<<redacted>+112>
<<redacted>+820>
<<redacted>+688>
<<redacted>+356>
<<redacted>+80>
<<redacted>+808>
<<redacted>+344>
<<redacted>+420>
<<redacted>+104>
<<redacted>+284>
<<redacted>+556>
<<redacted>+504>
<<redacted>+1792>
<<redacted>+220>
<<redacted>+284>
<<redacted>+920>
<<redacted>+168>
<<redacted>+184>
<<redacted>+56>
<<redacted>+24>
<<redacted>+540>
<<redacted>+724>
<CFRunLoopRunSpecific+384>
<<redacted>+460>
<UIApplicationMain+204>
<main+164>
Я не уверен, как это интерпретировать, я не использую какой-либо контент CoreGraphics в своем коде, и на другие подобные вопросы были ответы, которые не работали для меня. Я понимаю, что может быть трудно помочь отладке без кода, но я не могу понять, какой код связан с этим, поэтому, если у кого-то есть идея, я могу опубликовать больше кода.
7 ответов
Судя по моим экспериментам, это связано с UIViewControllerBasedStatusBarAppearance
в Info.plist
,
Это происходит на iOS 9 (бета и GM), но не на 8.4.
По предложению @JimRota, переместив это в ответ, так как это было сочтено полезным:
Было это еще в XCode 7 GM, iOS9 GM. Но, проверьте это: Set UIViewControllerBasedStatusBarAppearance
на ДА (даже если строка состояния скрыта, поэтому для начала я установил для нее значение НЕТ), и предупреждения исчезнут. Псих!
Затем мне пришлось добавить это в мои контроллеры представления, чтобы скрыть строку состояния:
- (BOOL) prefersStatusBarHidden
{
return YES;
}
Для меня все мои ВК фактически наследуются от ProjectNameViewController
, так что это немного упростило.
Исходя из комментариев, приведенных выше, это реальный способ исправить:
UIViewControllerBasedStatusBarAppearance to YES in Info.plist
Я получаю то же самое в выпуске xcode 7 GM, я думаю, что я просто проигнорирую их, потому что все работает, но это довольно раздражает, даже если они признали свою ошибку и просто еще не исправили ее. Создание форума
Я получаю это тоже (включая отредактированную часть) при компиляции моего проекта на iOS9 beta5. Это хорошо при компиляции на iOS8.
Это происходит прямо в моем делегате приложения, прежде чем выполнять какие-либо команды из
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
так что, похоже, проблема с бета-версией iOS выше, чем у нас.
У меня был такой же тип ошибки при использовании нецелочисленных значений в качестве вставок для изображений с изменяемым размером, например:
UIImage * image = [[UIImage imageNamed:@"pill"]
resizableImageWithCapInsets:UIEdgeInsetsMake(17.5, 17.5, 17.5, 17.5)];
Это вызвало такого рода журналы. Использование целочисленных значений решило проблему.
У меня была эта ошибка. Это потому, что я создал функцию и забыл добавить возвращаемое значение.
-(void)doSomething
против
-doSomething
тьфу.