watchOS 6 WKInterfaceImage在释放时崩溃

Sn0*_*eze 3 ios swift apple-watch watchos-6

自watchOS 6 SDK的第一个beta版本以来,如果使用watchOS 6.0 SDK进行编译,我的应用程序开始崩溃。watchOS 6.1不会出现此问题,而在模拟器中会更经常发生。现在,我已经能够确定问题所在:

我有一个WKInterfaceImage正在显示通过使用一系列图像制作动画的微调框。如果我有一个WKInterfaceController显示这样的微调器的新推送,则在视图消失时它将崩溃。在内部使用SPInterfaceImageView它似乎被释放了两次。

这是Xcode日志消息:

-[SPInterfaceImageView release]: message sent to deallocated instance 0x3971ed60
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过同样的问题?我猜这是watchOS SDK中的错误。

我不能提供任何源代码,因为仅使用情节提要板就可以实现。我的开发语言是Swift。

亲切的问候
亚历山大·海尼希

Sn0*_*eze 6

好吧,我问了这个问题之后,我终于发现了导致此问题的原因!

如果您的watchOS应用程序使用了动画图像(如我在问题中描述的微调器),则有必要使用watchOS 6 SDK进行调用,image.stopAnimating()然后WKInterfaceController将其关闭。

这可以在didDeactivate()方法中完成,也可以在图像视图被关闭时完成。仅显示隐藏图像视图是不够的!当图像视图具有固定大小时,它也有帮助。

我希望这有助于人谁得到其中的一些错误信息: EXC_BAD_INSTRUCTION_UIImageContentContextualEffect .cxx_destruct在堆栈跟踪

或上述 -[SPInterfaceImageView release]: message sent to deallocated instance