gpt4 book ai didi

swift - 追加到 [字符 : [object]] returns 0 key/value pair 的字典

转载 作者:行者123 更新时间:2023-11-30 12:40:34 24 4
gpt4 key购买 nike

我正在尝试显示类似于我的用户列表的联系人的表格 View 。

我声明了一个 friend 的全局变量,它将存储名称的第一个字符以及名字以此开头的用户列表

var friends = [Character: [User]]()

在我的获取方法中,我这样做

for friend in newFriends {                      
let letter = friend.firstName?[(friend.firstName?.startIndex)!]
print(letter)
self.friends[letter!]?.append(friend)
}

在此之后,我应该拥有我的 friend 数组,其中包含名称的第一个字母以及其中的用户;然而,我 friend 的字典是空的。

如何解决这个问题?

编辑:我正在遵循本教程,但他并不完全相同.. Swift: How to make alphabetically section headers in table view with a mutable data source

最佳答案

不要使用Character作为键,而是使用String。您需要确保为插入 groupedNames 中的每个新的 First Initial 键初始化 [User] 数组。我保留了一个 groupedLetters 数组,以便更轻松地获取节数

var groupedNames = [String: [User]]()
var groupedLetters = Array<String>()

func filterNames() {
groupedNames.removeAll()
groupedLetters.removeAll()

for friend in newFriends {
let index = friend.firstName.index(friend.firstName.startIndex, offsetBy: 0)
let firstLetter = String(friend.firstName[index]).uppercased()
if groupedNames[firstLetter] != nil {
//array already exists, just append
groupedNames[firstLetter]?.append(friend)
} else {
//no array for that letter key - init array and store the letter in the groupedLetters array
groupedNames[firstLetter] = [friend]
groupedLetters.append(firstLetter)
}

}
}

关于swift - 追加到 [字符 : [object]] returns 0 key/value pair 的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42276850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com