watchOS 6 WKInterfaceImage аварийно завершает работу при освобождении - PullRequest
1 голос
/ 15 октября 2019

со времени первой бета-версии watchOS 6 SDK мое приложение начало падать, если скомпилировано с watchOS 6.0 SDK. Проблемы не возникает с watchOS 6.1 и происходит чаще в симуляторе. Теперь я смог определить проблему:

У меня есть WKInterfaceImage, который отображает счетчик, анимированный с использованием серии изображений. Если у меня есть новый WKInterfaceController, который показывает такой счетчик, он потерпит крах, когда представление будет отклонено. Внутренне это использует SPInterfaceImageView, который, кажется, выпускается дважды.

Вот сообщение журнала Xcode:

-[SPInterfaceImageView release]: message sent to deallocated instance 0x3971ed60

Кто-нибудь сталкивался с такой же проблемой? Я думаю, это ошибка в watchOS SDK.

Я не могу дать никакого исходного кода, поскольку это происходит только с использованием раскадровок. Мой язык разработки - Swift.

С уважением
Александр Хейнич

1 Ответ

4 голосов
/ 15 октября 2019

Хорошо, после того, как я задал вопрос, я наконец обнаружил, что вызывает эту проблему!

Если ваше приложение для watchOS использует анимированные изображения, такие как вращатель, который я описал в этом вопросе, необходимо с помощью watchOS 6 SDK вызвать image.stopAnimating(), прежде чем WKInterfaceController будет отклонено.

Это можно сделать с помощью метода didDeactivate() или когда просмотр изображения прекращается. Недостаточно просто скрыть вид изображения! Это также помогает, когда изображение имеет фиксированный размер.

Я надеюсь, что это поможет любому, кто получит некоторые из этих сообщений об ошибках: EXC_BAD_INSTRUCTION с _UIImageContentContextualEffect .cxx_destruct в трассировке стека

или вышеупомянутым -[SPInterfaceImageView release]: message sent to deallocated instance

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...