首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >watchOS 6 WKInterfaceImage在取消分配时崩溃

watchOS 6 WKInterfaceImage在取消分配时崩溃
EN

Stack Overflow用户
提问于 2019-10-15 08:01:20
回答 2查看 367关注 0票数 5

从watchOS 6 SDK的第一个测试版开始,如果用watchOS 6.0SDK编译,我的应用程序就开始崩溃。这些问题在watchOS 6.1中没有出现,而且在模拟器中发生的频率更高。现在我已经能够确定这个问题:

我有一个WKInterfaceImage,它通过使用一系列图像来显示旋转器。如果我有一个新的WKInterfaceController推,显示这样的旋转器,它将崩溃时,该视图被驳回。在内部,这是使用SPInterfaceImageView,它似乎得到了两次发布。

下面是Xcode日志消息:

代码语言:javascript
复制
-[SPInterfaceImageView release]: message sent to deallocated instance 0x3971ed60

有没有人经历过同样的问题?我想这是watchOS SDK中的一个bug。

我不能给出任何源代码,因为这正在发生仅仅是通过使用故事板。我的开发语言是Swift。

亲切的问候

亚历山大·海尼希

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 20
EN

Stack Overflow用户

发布于 2019-12-18 20:58:49

我经历了同样的问题,并设法通过为repeatCount参数startAnimatingWithImages(in:duration:repeatCount:)传递一个非零值来解决这个问题。

所以我最终得到了这样的结果:

代码语言:javascript
复制
setImageNamed("spinner")
startAnimatingWithImages(in: NSRange(location: 0, length: 6), duration: 0.75, repeatCount: 9999)

很奇怪,但它阻止了车祸。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58389895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档