我有這個閉包,我用它來填充我的數組和字典。但是,當我嘗試在函數外部使用它時,它是空的。這裏是我的代碼:無法在關閉Swift之外訪問數組3
var pages: [FBPages] = []
override func viewDidLoad() {
super.viewDidLoad()
Facebook.getUserInfo(greetingLabel: greetingLabel, profileImage: profilePic)
pages = []
let params = ["fields": "about,name,created_time,picture", "limit": "3"]
Facebook.getUserPagesLikes(params: params, handler: { (userData) in
guard let pagesArrays = userData["data"] as? Array<Any> else {return}
for dict in pagesArrays {
let fbPages = FBPages()
let pagesData = dict as! NSDictionary
fbPages.about = pagesData["about"] as! String
fbPages.name = pagesData["name"] as! String
self.pages.append(fbPages)
}
print("pages array: \(pagesArrays)")
print("pages : \(self.pages.count)")
}) { (error) in
print("cannot get FB pages: \(String(describing: error))")
}
//I got 0 here
print("fb array: \(pages.count)")
}
我試圖在封閉外打印數組計數,但我只有0作爲結果。我怎麼解決這個問題。提前致謝。
它是0,因爲getUserPagesLikes在打印之前尚未完成。 – koropok
是的,我知道,那麼如何修復這段代碼,以便我可以訪問數組之外的閉包? – z3r0
加載你的tableview/collectionview /或閉包中的任何邏輯? – koropok