Это очень громоздкий код.
Вам настоятельно рекомендуется использовать структуру, а не словарь, по крайней мере, с членом name
struct Person {
let name : String
}
Объявить и переименовать arrJsonDic
(более описательно) как
и arrUserList
как
var users = [String: [Person]]()
Для секций объявите другой массив
var letters = [String]()
Сгруппируйте массив и заполните letters
просто
users = Dictionary(grouping: people, by: { String([114].name.first!) })
letters = users.keys.sorted()
В табличном представлении в numberOfSections
вернуть
return letters.count
, а в numberOfRows
вернуть
let letter = letters[section]
return users[letter]!.count
В cellForRowAt
присвоить имя ярлык с
let letter = letters[indexPath.section]
let user = users[letter]![indexPath.row]
cell.nameLabel.text = user.name
Сделать он еще быстрее объявляет вторую структуру Section
struct Section {
let index : String
let people : [Person]
}
удаляет
var letters = [String]()
strike>
и объявляет users
var users = [Section]()
Группировка немного отличается
let grouped = Dictionary(grouping: people, by: { String([1110].name.first!) })
users = grouped.map({ Section(index: [1110].0, people: [1110].1) }).sorted{[1110].index < $1.index}
Код в трех методах делегирования табличного представления:
return users.count
-
[ 1112]-
let user = users[indexPath.section].people[indexPath.row]
cell.nameLabel.text = user.name
Используйте свойство ColumnEdit столбца для присваивания (нового) управления lookupedit. Управление lookupedit является полем комбинированного списка, в котором Вы нуждаетесь.
В свойстве ColumnEdit столбца добавьте (новый) ComboBoxEdit. Если Вы всегда хотите это видимый, устанавливаете ShowButtonMode на столбце к всегда.
Это создаст объект repositoryItemComboBox1 (это - имя по умолчанию), что можно добавить объекты к если Вы, так примите решение отобразиться в выпадающем списке. т.е. repositoryItemComboBox1. Items.add ("Мой текст");
Можно использовать ColumnEdit и поместить надлежащий репозиторий. Затем можно сделать привязку к тому репозиторию.