2017-07-22 78 views
-2

下面是代碼:爲什麼我的數組在追加後爲空?

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後,有數組中的元素,但如果我只是在最後打印(陣列),該陣列仍然是空的。爲什麼是這樣?有人可以幫助澄清?

+4

您認爲findObjects *** InBackground ***有什麼作用? –

回答

2

您正在主隊列上打印數組。這些對象正在添加到後臺隊列中。 實際上,即使在通過背景隊列添加任何對象之前,也會調用print(array)。這就是爲什麼它打印空陣列。

相關問題