В моем приложении MacOS я получаю неприятную ошибку «Неожиданный выдающийся фон CATransaction» и сбой, но только при запуске из Xcode - PullRequest
0 голосов
/ 21 июня 2019

У меня есть MacOS-приложение Objective-C, у которого есть окно с NSTableView слева и подробным представлением справа, в NSSplitView. В окне также есть метки и другие элементы управления. Некоторые из элементов управляются привязками, другие - через ссылки. Как только я открываю окно, если я ничего не трогаю, это работает. Если, как только окно открывается, я сразу же быстро прокручиваю мышью в любой части окна, я получаю сбой с этой трассировкой стека:

enter image description here

И неприятная ошибка "Неожиданный выдающийся фон CATransaction" в журнале. Я знаю, что это условие почти всегда связано с обновлением пользовательского интерфейса в фоновом потоке, но я проверяю свой код в течение бесчисленных часов и не могу найти ни одного обновления пользовательского интерфейса, выполненного в фоновом режиме. Самое странное, что сбой происходит только при запуске приложения через XCode. Если я запускаю приложение из Finder, это никогда не происходит. NSTableView управляется через источник данных и делегат, и я попытался удалить соединения, и это все еще происходит. Я пытался исключить части кода с помощью оператора return, например, в WindowDidLoad, но это все же происходит. Также снятие креплений не решило ситуацию. Кто-нибудь может предложить мощную технику для нахождения инструкции, вызывающей сбой?

Изменить:

Я удалил все объекты из окна в NSWindowController и оставил только NSScrollView со встроенным NSTableView. Это все еще происходит, даже если я вручную верну 0 из numberOfRowsInTableView. У меня есть возможная подсказка, которая может привести к решению: если я установлю NSTableView на не включенный или скрытый, или оба, это все равно произойдет. Если я установлю NSScrollView скрытым, это больше не произойдет. Я надеюсь, что это может кому-то позвонить, потому что у меня действительно заканчиваются стратегии. Еще раз спасибо.

...