我想填寫完成塊中的字典,但字典總是空的,當我打印它。我已經嘗試過分配它,並且還使用循環來逐個追加每個元素......任何洞察力都會被讚賞!原始字典(在完成塊中返回填充)爲什麼不復制/分配這個字典數組?
該數據是一個字典數組。
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後調用此函數來填充它,它只是打印[[:]]到控制檯
你在哪裏打印'self.friendsList'來檢查值? –
回溯,我可以看到你可以正確地追加'friendsList',所以這個數組很好。 「朋友」也一樣。所以接下來我想到的是字典部分,它是'人',正確的? (請注意,這是你的代碼,不是我的。)如果是這樣,某個地方我會認爲會有一個像「person [key] = value'或者friend [person.key]這樣的」Dictionary「 = person.value'。哪裏是?你的字典是如何填充的? – dfd
@PhillipMills我在其他地方打印它 - 我可以在這裏上傳代碼,但它只是一個打印聲明:print(listOfFriends) – user7804097