如何解决如何解决中止陷阱:6 错误 - xcode 12
我们在 Xcode 12 中遇到了“abort trap 6”的问题。由于这个原因,应用程序没有使用 Xcode 12 运行。我们正在使用 swift 5 版本和 jsqmessageviewcontroller 目标 c 库。 在 Xcode 12 中出现以下错误。
<unkNown>:0: error: Fatal error encountered while reading from module 'wwww'; please file a bug report with your project and the crash log
<unkNown>:0: note: module 'wwww' full misc version is '5.3.2(5.3.2)/Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)'
top-level value not found
Cross-reference to module 'JSQMessagesViewController'
... JSQMessageMediaData
error: Abort trap: 6 (in target 'zapwww' from project 'zapwww')
如果有人有解决方案,请帮助我们。
解决方法
我在 Xcode 12.5.1 中遇到了同样的错误,这似乎是下一个测试版中已修复的错误。但是,似乎有几个问题可能会导致此错误。所以我的解决方案可能不起作用。
对我来说,这个问题非常具体,只发生在以下场景中:
- 调用返回可选 RealmObject(可能与您的情况不同)的方法。
- 返回的 RealmObject 已分配一个变量。
- 尝试使用 guard let 或如果 let 对新的安全解包变量使用相同名称来解包变量。
最简单的解决方法是使用不同的变量名或 直接安全地解包返回的对象,无需为其分配变量。
在我的情况下导致错误的示例:
class MyClass {
func returnObject() -> Object? {
return nil
}
func anyMethod() {
let myObject = returnObject()
guard let myObject = myObject else { return } // <-- works anywhere else but here.
}
}
在我的情况下修复错误的相同示例:
class MyClass {
func returnObject() -> Object? {
return nil
}
func anyMethod() {
let myObject = returnObject()
guard let myNewObject = myObject else { return } // <-- Changed name of new variable here
}
}
我已经看到人们对其他类型有这个问题,所以它不仅限于 RealmObject 类型。但是检查所有的守卫 let 或 if let 具有相同的变量名是一个好的开始。
我还看到其他人通过清理构建文件夹或删除包并重新安装来修复它。不过这对我没有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。