分配:"创建一个显示加油站列表及其油价和距离的应用程序。将信息存储到词典中。在表格视图中显示结果。让用户选择一个条目,然后显示一个显示该条目的UIAlert对话框。"
我正在写字典部分。字典的代码是
"var gasStation = ["76": ["$2.76", "1.2 miles"],
"Arco":["$2.56", "2.4 miles"],
"Shell":["$3.54", "3.5 miles"],
"Tower mart": ["$2.36", "5.7 miles"]]"
此代码行中会弹出错误
cell!.textLabel!.text = gasStation[indexPath.row]
以下是新更新的代码
import UIKit
class ViewController: UIViewController,UITableViewDataSource, UITableViewDelegate {
let dwarves = [ "Sleepy", "Sneezy", "bashful", "Happy"]
let gasStation = ["76": ["$2.76", "1.2 miles"],
"Arco":["$2.56", "2.4 miles"],
"Shell":["$3.54", "3.5 miles"],
"Tower-Mart": ["$2.36", "5.7 miles"]]
var gasStationNames = Array(gasStation) // error: "ViewController.Type' does not have a member named 'gasStation'
let simpleTableIdentifier = "SimpleTableIdentifier"
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView,
numberOfRowsInSection section: Int) -> Int {
return dwarves.count
}
func tableView(tableView: UITableView,
cellForRowAtIndexPath indexPath: NSIndexPath) ->UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(
simpleTableIdentifier) as? UITableViewCell
if (cell == nil) {
cell = UITableViewCell(
style: UITableViewCellStyle.Default, reuseIdentifier: simpleTableIdentifier)
}
cell!.textLabel?.text = dwarves[indexPath.row]
return cell!
}
}
答案 0 :(得分:1)
这就是你如何获得所有加油站名称的数组。
let gasStationNames = Array(gasStation.keys)
但它的顺序不一样。 并将其分配给tableView:
cell!.textLabel!.text = gasStationNames[indexPath.row]
在这里,您可以将gasStationNames
与indexPath.row
类型Int
编入索引,因为它类型为Array
。要从Dictionary中获取值,您应该传递一个正确类型的键。
您应该查看此document page
修改强>
在gasStationNames
cellForRow
let gasStationNames = Array(gasStation.keys)
然后分配给单元格的textLabel
cell!.textLabel!.text = gasStationNames[indexPath.row]