Swift 将字典快速导入tableviewcell

Swift 将字典快速导入tableviewcell,swift,tableview,Swift,Tableview,我试图创建一个表视图来显示名为tableText的词典的内容。但是在cellforrowatin部分方法中,当我执行以下操作时 let obj = tableText[indexPath.row] 这样说我就错了 cannot subscript a value of type 'Dictionary<String, String> with an index of Int. 但错误仍然存在 您能帮我一下吗?如果您只需要值,您可以从字典中获取一个值数组,并在该数组中使用inde

我试图创建一个表视图来显示名为
tableText
的词典的内容。但是在
cellforrowatin部分
方法中,当我执行以下操作时

let obj = tableText[indexPath.row]
这样说我就错了

cannot subscript a value of type 'Dictionary<String, String> with an index of Int. 
但错误仍然存在


您能帮我一下吗?

如果您只需要值,您可以从字典中获取一个值数组,并在该数组中使用indexPath.row

if let text = tableText.values[indexPath.row] as? String {
    cell.textLabel.text = text
}
显然,如果需要对它们进行排序,则必须对它们进行排序,因为字典并不是根据键进行排序的

如果你想按字母顺序排列,你可以这样做

let sortedText = tableText.values.sorted { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedAscending }

并将此sortedText数组用作您的数据源

字典没有索引,它们有键。您声明字典错误,如果要执行此操作,您需要将字典设置为tableText类型……但如果这是您想要的,则无论如何都应该使用数组,因此表视图单元格的数据必须来自数组,是否正确?@glhchy-数组适用于表视图或集合视图,因为数据可以排序等。如果您有大量数据并使用核心数据,您应该查看NSFetchedResultsController。非常感谢。这很有帮助
let sortedText = tableText.values.sorted { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedAscending }