ios - 如何修复以下错误:出现在我的代码中的“对成员'下标'的模糊引用”?
问题描述
我正在尝试使用在 groupedEventArray 中初始化的 Dictionary 函数按event_category对我的事件数组进行分组。但是当我尝试访问TableView 的数据源cellForRowAt时,会导致错误:对成员“下标”的模糊引用init(grouping:by:)
let (category, events) = groupedEventArray[indexPath.row]
这是我正在尝试的示例代码:
var events = [Events]()
var groupedEventArray = [Any]()
var testEvent1 = Events(id: 1, event_name: "PrototypeEvent", event_category: "Party", event_date: "10/06/19", event_img_url: "null")
var testEvent2 = Events(id: 2, event_name: "PrototypeEvent2", event_category: "Music", event_date: "11/06/19", event_img_url: "null")
override func viewDidLoad() {
super.viewDidLoad()
events.append(testEvent1)
events.append(testEvent2)
groupedEventArray = Dictionary(grouping: events) { $0.event_category }.compactMap({( $0.key, $0.value )})
print(groupedEventArray)
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return groupedEventArray.count
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 245
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "PopularCell", for: indexPath) as! PopularCell
let (category, events) = groupedEventArray[indexPath.row] // Error : Ambiguous reference to member 'subscript'
return cell
}
解决方案
声明你groupedEventArray
的类型Dictionary<String, [Events]>
var groupedEventArray = Dictionary<String, [Events]>()
也放下compactMap
groupedEventArray = Dictionary(grouping: events) { $0.event_category }
并使用事件类别类型访问它
let partyEvents = groupedEventArray["Party"]
推荐阅读
- javascript - React - 添加 onClick 后重新渲染过多
- excel - SUMIFS 和 IndexMatch - 动态列
- mysql - 如何比较两个表中的列组合?
- wordpress - 将多个页面重定向到单个页面
- php - 如何为特定时间的下一个实例创建相对 PHP DateTime?
- html - 为什么我不能使用 jinja 模板将静态图像文件的位置从我的 Django 视图传递到我的 html 文件?
- python - 无法使用虚拟环境运行 django wsgi
- blazor - 如何动态引用 Vue 等 Razor 组件?
- spring - Heroku 上的 Spring Boot 应用程序保存在数据库字符中 č , ć 之类的?? . 如何在 Heroku 上为这些字母设置编码?
- cytoscape - 选择距离感兴趣基因 1 或 3 个节点的所有节点