所以我试图创建一个表视图,该视图将从我已经在不同视图控制器中编写的源中获取信息。当我尝试将信息拉入表格视图的单元格时,我遇到了一些麻烦。
我收到错误"无法下标' [String:DayData]'指数为tye' Int'"在以" var开头的行上(日期,销售,门锁定......"
我不确定如何解决这个问题。任何人都可以搞清楚吗?谢谢!
import Foundation
import UIKit
var allInformationByDate = [
"2016-08-13": DayData(sales: 0, doorsKnocked: 0, milesWalked: 0.00, hoursWorked: 0.00)
]
struct DayData {
let sales: Int
let doorsKnocked: Int
let milesWalked: Double
let hoursWorked: Double
}
class historyViewController: UIViewController, UITableViewDataSource {
//return Int, how many sections in table
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
//return Int, how many rows in table
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return allInformationByDate.count
}
//what are the contents of each cell
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = UITableViewCell()
var (date, sales, doorsKnocked, milesWalked, hoursWorked) = allInformationByDate[indexPath.row]
return cell
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
答案 0 :(得分:2)
您的allInformationByDate
是词典,其中包含
未指定顺序中的键和值,并且无法使用
整数下标。
您应该创建一个数组,其中包含所需顺序的日期。在你的情况下
let sortedDates = allInformationByDate.keys.sort()
会奏效。然后,您可以检索索引路径的数据
let date = sortedDates[indexPath.row]
let dayData = allInformationByDate[date]! // We _know_ that the dictionary value exists.