在方法调用执行之后的语句,在调用结束之前迅速

时间:2018-08-17 07:47:49

标签: swift

我正在尝试调用另一个类中的方法,并使用该类的变量,该变量在方法调用后将在该方法中更新。但是由于在方法完全执行之前调用了该语句,因此我得到了一个变量的nil值。

例如:我有两个类A和B。B有一个方法更新和一个变量更新。

class A {
    let obj_b = B()

    func call() {
        obj_b.update()
        let updated = obj_b.updated
    }
}

class B {
    var updated: Int?

    func updated() {
        updated = 1
    }
}

我要尝试的内容比示例复杂得多,该方法大约需要5秒钟才能完全执行。除了返回我需要的变量之外,还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

class A {
        let obj_b = B()

        func call() {
            let updated = obj_b.updatedVariable
            print("\(updated!)")
        }
    }

    class B {
        var updatedVariable: Int?{
            return  1
        }
    }

呼叫A

let obj_b = A()
obj_b.call()

结果打印1,这就是您想要的变量。在这种情况下,您可以使用计算变量。