从watchOS 6 SDK的第一个测试版开始,如果用watchOS 6.0SDK编译,我的应用程序就开始崩溃。这些问题在watchOS 6.1中没有出现,而且在模拟器中发生的频率更高。现在我已经能够确定这个问题:
我有一个WKInterfaceImage,它通过使用一系列图像来显示旋转器。如果我有一个新的WKInterfaceController推,显示这样的旋转器,它将崩溃时,该视图被驳回。在内部,这是使用SPInterfaceImageView,它似乎得到了两次发布。
下面是Xcode日志消息:
-[SPInterfaceImageView release]: message sent to deallocated instance 0x3971ed60有没有人经历过同样的问题?我想这是watchOS SDK中的一个bug。
我不能给出任何源代码,因为这正在发生仅仅是通过使用故事板。我的开发语言是Swift。
亲切的问候
亚历山大·海尼希
发布于 2019-10-15 08:48:20
好吧,在我问了这个问题之后,我终于发现了这个问题的原因!
如果您的watchOS应用程序使用了像我在问题中描述的旋转器这样的动画图像,那么watchOS 6 SDK就有必要在WKInterfaceController被排除之前调用image.stopAnimating()。
这可以在didDeactivate()方法中完成,或者当图像视图被排除时。仅仅显示隐藏图像视图是不够的!当图像视图有固定的大小时,它也会有所帮助。
我希望这对任何获得这些错误消息的人都有帮助:在堆栈跟踪中使用EXC_BAD_INSTRUCTION和_UIImageContentContextualEffect .cxx_destruct
或者上面提到的-[SPInterfaceImageView release]: message sent to deallocated instance
发布于 2019-12-18 20:58:49
我经历了同样的问题,并设法通过为repeatCount参数startAnimatingWithImages(in:duration:repeatCount:)传递一个非零值来解决这个问题。
所以我最终得到了这样的结果:
setImageNamed("spinner")
startAnimatingWithImages(in: NSRange(location: 0, length: 6), duration: 0.75, repeatCount: 9999)很奇怪,但它阻止了车祸。
https://stackoverflow.com/questions/58389895
复制相似问题