У меня есть приложение Apple Watch, отображающее табличное представление с большим количеством изображений (макет 4х4, как в приложении «Фотографии»).Нажатие на изображение приведет к анимации на самом изображении.
Это работало нормально, но недавно пользователь связался со мной по поводу сбоя приложения после нажатия около 5 изображений.Я смог воспроизвести эту проблему.Моим первым инстинктом было выбрать Profile in instruments
, но те, к сожалению, приветствуют меня: «Распределение не поддерживает платформу watchOS».Следовательно, я не вижу, какой объект увеличивается в размерах.
Как я могу определить эту проблему?Ниже вы найдете немного архитектуры
GridController
: состоит из таблицы WKInterfaceTable.Нажав на картинку, вы попадете на
DetailController
: на ней будет SKScene.
SKScene
: Там тоже ничего особенного.Получил SKShapeNode
, который в основном имеет изображение дочернего.
DetailController
представлен с помощью push, а не модально, поэтому watchOS отображает кнопку back
.Я думал, что это удалит все ссылки - но это не так.Код ничего особенного.
Я обнаружил, что несколько потоков на SKScene не выпускают объекты, поэтому я боюсь, что это именно тот случай.Есть ли что-то очевидное, чего мне не хватает?Или это известная ошибка?Как я мог обойти это?Я попытался weak
все свойства без успеха.И тот факт, что профилировщик не будет прикрепляться к часам, не сильно помогает.Я могу опубликовать полный код, если это необходимо, но это буквально 20 строк аспекта, которые соответствуют изображению пользовательского интерфейса для SKScene, так что я не думаю, что это связано с этим.