我正在尝试在完成块中填写字典但是当我打印它时字典总是空的。我已经尝试过分配它,并且还使用循环来单独追加每个元素......任何见解都值得赞赏!原始字典(在完成块中返回已填充)
数据是一个字典数组。
var friendsList : [[String : AnyObject]] = [[:]]
fetchFriends(username: username) { (listOfFriends) in
print("data set is:") <-----This is working, the data set is full
print(listOfFriends)
//self.friendsList = listOfFriends <---this code didn't work
for person in listOfFriends { <-------this code didn't work
for (key,value) in person {
let friend = [ key : value ]
self.friendsList.append(friend)
}
}
}
我将完成块中的代码更改为此(不要理解为什么这样做也不会......)
for person in listOfFriends {
print(person) <-----this prints the correct information
self.friendsList.append(person) <----this is working here
print(self.friendsList) <---prints as expected
}
}
然后当我在viewDidLoad中打印friendsList后,调用此函数来填充它,它只是将[[:]]打印到控制台
答案 0 :(得分:0)
你在viewDidLoad中找到它的原因是调用fetchFriends是异步的,所以在调用viewDidLoad之后它就完成了。
会发生什么: