本文介绍了LLDB“线程返回"命令在Swift函数中发出错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在阅读在调试器中跳舞-带有LLDB的华尔兹/a>文章.而且我正在尝试使用Swift 2.2和Swift 3.0的thread return
命令.
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let resust = test()
print(resust)
}
func test() -> Bool {
return true
}
}
,我在test()
函数的开头添加了一个thread return false
动作的断点.但是,在command + R之后,我的程序按预期在断点处停止,但是出现以下错误:
错误:线程1的第0帧返回错误:我们目前仅支持设置简单的整数和浮点返回类型."
然后,我在Objective-C代码中尝试了相同的方法;一切顺利.
Then I tried the same in Objective-C code; everything goes well.
推荐答案
这些是已知的错误. Swift中的值类型(Int,Bool等)都是复杂的对象,我们还没有教过lldb如何覆盖它们的返回值.错误处理也将使这个棘手.
通常,强制返回是不安全的-ARC甚至Swift都更不安全,因为您可能不平衡引用计数-不仅是局部变量,而且还可能是传入的对象.
这篇关于LLDB“线程返回"命令在Swift函数中发出错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!