以下是代码:
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后,数组中有元素,但如果我只是在末尾打印(数组),则数组仍为空。为什么是这样?有人可以帮忙解释一下吗?
答案 0 :(得分:2)
您正在主队列上打印数组。对象正在后台队列中添加。
实际上,即使在通过后台队列添加任何对象之前,print(array)
也会被调用。这就是为什么它的打印空数组。