【发布时间】:2019-06-20 18:45:26
【问题描述】:
我有这个字典:
var userDict : [String : Bool] = ["": true]
我想使用它,以便我可以快速有效地检查用户是否已被处理。问题是我无法为其添加值。正如在网上找到的流行答案中所见,我已经完成了以下操作。我该如何解决这个问题?
var processedUsers = Set<String>()
func search() {
for u in snapChildren {
print(u, " this is one of the users")
let uid = self.getUID(snapshot: u)
print(" Is \(uid) in processedUsers?", processedUsers.contains(uid), " This is the entiere thing: ", processedUsers)
if !processedUsers.contains(uid) {
print("hfsghfdsagfkdsafjlksadfhjklasdfhlksahfjklsadfhakd")
let user = User(theuserID: uid)
self.retrieveUsersInfo(userObj: user, completion: {
self.peopleArray.append(user)
self.processedUsers.insert(user.userID!)
self.tableView.reloadData()
})
}
要清楚。我想添加诸如["HDSFG2323BFYDSG54": true]之类的值
更新:
我已经包含了更多的上下文代码。我有一个循环遍历用户的循环。在里面我需要确定用户是否已经被处理。
从打印语句中我发现,对于许多循环,尽管已经知道 uid 不在容器中,但它似乎没有添加它,因为在下一个循环中容器是空的。
【问题讨论】:
-
严格来说,您不能将值追加到字典中。不过,您的代码看起来是正确的。如果
uid键的值不存在,请设置键/值对。 -
I am unable to add values to it是什么意思?当你尝试这样做时会发生什么? -
@Cristik 键值对,
-
您的最新更新使它看起来更加混乱。如果您将已完成的用户添加到
processedUsers,它应该可以工作。请参阅我更新的示例。如果仍然无法正常工作,请使用断点调试retrieveUsersInfo— 您可能希望事件发生乱序。
标签: ios swift dictionary