Я делаю массив и пытаюсь поместить его в индексный список и в алфавитном порядке, но получаю ошибку.
Вот мой двумерный массив
var contacts = [
ExpandableNames(isExpanded: true, names: ["Hong Kong", "Bangkok, Thailand", "London, UK", "Singapore", "Bali, Indonesia"].map{ Contact(name: $0, hasFavorited: false) }),
]
ВотОшибка. Пожалуйста, помогите, не можете понять, как это исправить
func createContactDict() {
for contact in contacts {
// Get the first letter of the contact name and build the dictionary
let firstLetterIndex = contacts.index(contacts.startIndex, offsetBy: 1)
let contactKey = String(contacts[..<firstLetterIndex])
if var contactValues = contactsDict[contactKey] {
contactValues.append(contacts)
contactsDict[contactKey] = contactValues
} else {
contactsDict[contactKey] = [contact]
}
}
Вот код, связанный с UITableViewDataSource
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let contactKey = contactSectionTitles[section]
guard let contactValues = contactsDict[contactKey] else { return 0 }
return contactValues.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) as! ContactCell
cell.link = self
let contact = contacts[indexPath.section].names[indexPath.row]
cell.textLabel?.text = contact.name
cell.accessoryView?.tintColor = contact.hasFavorited ? UIColor.red : .lightGray
if showIndexPaths {
cell.textLabel?.text = "\(contact.name) Section:\(indexPath.section) Row:\(indexPath.row)"
}
// Configure the cell...
return cell
}