如何触发中断时,数组是空的?(How to trigger a break when an Arra

2019-10-21 19:58发布

在我的应用程序,我有一个problème当我尝试在Array达成一项指标,该阵列实际上是空的。 我找不到什么排空,所以我想知道是否有可能与调试器来创建一个动态的断点,将弹出时,我的数组是空的。 因此,一旦某些项重置阵列或带走它的最后一个对象,我想知道。

我试图创建与“myArray.isEmpty ==真”为条件的符号断点,但它看起来并不工作,我想要的方式。

是否有可能还是我在做梦?

谢谢

Answer 1:

作为@kendall提到,您可以使用didSet检测当数组被清空,并把断点就可以了:

// a acts like a normal variable
var a: [Int] = [] {
    // but whenever it’s updated, the following runs:
    didSet {
        if a.isEmpty {
            // put a breakpoint on the next line:
            println("Array is empty")
        }
    }
}

a.append(1)
a.append(2)
println(a.removeLast())
// will print “Array is empty” before the value is printed:
println(a.removeLast())  


Answer 2:

你想要什么叫做观察点,它可以让你监控在内存中的变化。 我现在还无法确定如何设置一个在斯威夫特阵列,但可能是研究一个很好的起点。

一个想法是一个加didSet{}块保存阵列的性能,增加内的日志语句-上根据你的病情,该数组为空休息。



Answer 3:

据我所知,这是不可能的斯威夫特和Xcode中(或IDE的任何其他语言我都用过)。 为了使这项工作的IDE必须在执行程序中的每一步,以不断评估给定的表达式。

现在,如果数组是类,你可以继承,并在重写添加断点isEmpty方法,但是,当他们被归你不能。 :-(



文章来源: How to trigger a break when an Array is empty?