Swift线程问题

时间:2016-12-23 08:36:29

标签: swift

关于自定义对象,线程在swift中运行的方式/顺序存在问题。让我们说我用一些简单的代码创建了一个UIView:

import UIKit

class ExampleObject: UIView {

    var list = [Int]()

    override func draw(_ rect: CGRect) {
        list = [1,2,3]
    }

}

现在我尝试在我的View Controller中创建它后取回list变量的值:

override func viewDidLoad() {
    super.viewDidLoad()

    let eg = ExampleObject()
    self.view.addSubview(eg)

    print(eg.list)
}

即使我已经创建了应该是[]的对象,但它会打印出[1,2,3]。但是,如果我稍后从一个不同的函数调用它,我将得到正确的值。我猜测这与事物在swift中执行的顺序有关,所以我可以在我添加到视图后改变按钮的颜色......但我需要得到list的实际值因为在我的自定义对象中它正在计算一些非常复杂的东西。有没有办法可以做到这一点?

0 个答案:

没有答案