添加后为什么我的数组为空?

时间:2017-07-22 20:53:36

标签: ios arrays swift

以下是代码:

var array:[String] = []
var second:[String] = [" "]

 override func viewDidLoad() {
    super.viewDidLoad()
    search.delegate = self //HELP

    let query = PFQuery(className: "Classes")
    query.whereKey("name", notEqualTo: " ")
    query.findObjectsInBackground(block: { (objects, error) in
        if error != nil{
           print("cannot retrieve classes")
        } else {
            for object in objects!{
                self.array.append(object["name"] as! String)
                self.second = self.array
                self.classList.reloadData()
                print(self.array)
            }
        }
    })
     print(second)
    print(array)


}

打印self.array后,数组中有元素,但如果我只是在末尾打印(数组),则数组仍为空。为什么是这样?有人可以帮忙解释一下吗?

1 个答案:

答案 0 :(得分:2)

您正在主队列上打印数组。对象正在后台队列中添加。 实际上,即使在通过后台队列添加任何对象之前,print(array)也会被调用。这就是为什么它的打印空数组。