2015-08-18 2 views
1

Я, имеющий этот странный грохот, что только случается иногда:EXC_BAD_ACCESS на CIContext Draw Image

crash log

Это происходит на вызов "DrawImage".

self.glkv?.bindDrawable() 
self.ciContext?.drawImage(self.currentImage!, inRect: inrect, fromRect: self.currentImage!.extent()) 
self.glkv?.display() 
+0

Вы когда-нибудь работали над этим? Я получаю то же самое и не могу, чтобы жизнь меня решала :( –

ответ

0

EXC_BAD_ACCESS часто случается, когда указатель на адрес памяти разыменовывается неожиданно, может быть, это означает объект, равна нулю, когда оно не должно быть; однако компилятор не может поймать это, если свойство разрешено быть нулевым, как в случае линий ciContext и drawImage. Я бы проверял эти значения в отладчике, чтобы убедиться, что значение не равно нулю, когда оно не должно быть. Вы можете сделать это с помощью точки останова.

+0

Да, но ошибка происходит в коде OpenGL системы, как я могу узнать, что разыменовывается? –

+0

'ciContext' может и не быть сохраняемый, который должен быть для запуска этого метода. Возможно, попробуйте изменить '?' на '!' и посмотреть, не сработает ли он иначе, или сделать необязательное свойство, развернутое путем инициализации его при объявлении. – Cole

+0

Но если ciContext был равен нулю, эта строка даже не будет вызвана .. Кроме того, эта ошибка случается так редко, что я еще не знаю, как ее воспроизвести –