当前位置:  开发笔记 > IOS > 正文

将@objc类捕获为无主时,_swift_abortRetainUnowned

如何解决《将@objc类捕获为无主时,_swift_abortRetainUnowned》经验,为你挑选了0个好方法。

我在捕获一个@objc类的实例时遇到了这种奇怪的崩溃(用swift编写,但带有@objc子类和子类NSObject).它在分配闭包时发生,而不是在被调用时发生,因此问题不在于捕获的值将被释放,然后调用闭包.它随机发生,有时会更快崩溃,有时甚至更晚.我在Swift的早期版本中遇到了这个错误(我认为它是Swift 1.2),但现在我正在使用2.1并且也遇到了这个崩溃.

它运作良好,当我改变[unowned x][weak x],然后用力解包访问它x!.doSomething()这使我相信这是斯威夫特的错误,而不是在我的代码.然而,在bugs.swift.org开票之前,我想更多地关注这一点,以确保我没有遗漏任何东西.

它也在这里提到:
http://www.codeproject.com/Articles/791304/Resolving-strong-references-between-Swift-and-Obje
这里:
https://www.reddit.com/r/swift/comments / 3vhwmj/unowned_bug_in_closure_causes_attempted_to_retain /
and here:https://forums.developer.apple.com/thread/9873

但除了将捕获更改为weak并在以后强行展开之外,没有解决方案.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有