У меня есть MacOS-приложение Objective-C, у которого есть окно с NSTableView
слева и подробным представлением справа, в NSSplitView
. В окне также есть метки и другие элементы управления. Некоторые из элементов управляются привязками, другие - через ссылки. Как только я открываю окно, если я ничего не трогаю, это работает. Если, как только окно открывается, я сразу же быстро прокручиваю мышью в любой части окна, я получаю сбой с этой трассировкой стека:
И неприятная ошибка "Неожиданный выдающийся фон CATransaction" в журнале. Я знаю, что это условие почти всегда связано с обновлением пользовательского интерфейса в фоновом потоке, но я проверяю свой код в течение бесчисленных часов и не могу найти ни одного обновления пользовательского интерфейса, выполненного в фоновом режиме. Самое странное, что сбой происходит только при запуске приложения через XCode. Если я запускаю приложение из Finder, это никогда не происходит. NSTableView управляется через источник данных и делегат, и я попытался удалить соединения, и это все еще происходит. Я пытался исключить части кода с помощью оператора return, например, в WindowDidLoad, но это все же происходит. Также снятие креплений не решило ситуацию. Кто-нибудь может предложить мощную технику для нахождения инструкции, вызывающей сбой?
Изменить:
Я удалил все объекты из окна в NSWindowController
и оставил только NSScrollView
со встроенным NSTableView
. Это все еще происходит, даже если я вручную верну 0 из numberOfRowsInTableView
. У меня есть возможная подсказка, которая может привести к решению: если я установлю NSTableView
на не включенный или скрытый, или оба, это все равно произойдет. Если я установлю NSScrollView
скрытым, это больше не произойдет. Я надеюсь, что это может кому-то позвонить, потому что у меня действительно заканчиваются стратегии. Еще раз спасибо.