2015-04-23 4 views
0

Я принимаю EXC_BAD_ACCESS при звонке setFrame по телефону NSWindow. К сожалению, исключение происходит в AppKit, где я не могу его отладить, в [NSWindow _setFrameCommon:display:stashSize:] с недопустимым адресом 0x40dedeadbec0 (то же самое каждый раз).Отладка EXC_BAD_ACCESS в AppKit

вызов в моем коде, который вызывает исключение в подклассе NSWindow:

[super setFrame:frameRect display:flag]; 

Оба frameRect и display являются допустимыми значениями, и self является действительным экземпляром моей NSWindow подкласса.

Как я могу отладить эту ошибку?

ответ

0

Вам необходимо запустить отладку с включением NSZombieEnabled. Быстро все NSWindow было выпущено где-то по некоторым причинам. Например, у вас есть флаг ReleaseWhenClose с значением YES. Адрес ошибки, который вы указали, выглядит как Hexspeak

+0

Уже пробовал использовать зомби, и это не поможет; 'releaseWhenClose' устанавливается в' NO'. И это не окно, которое было выпущено, так как, когда я распечатываю значение 'self' в приведенной выше строке, он все еще является допустимым объектом NSWindow. – DanielGibbs