嗨我对Swift和tableviews有点新意我正在学校的最后一个项目,我正在使用Alamofire发出我的请求,SwiftyJSON通过我的JSON解析。我想将[[String:String]]中的一些数据存储到我的tableview单元格中。我继续得到这个错误,不禁想出来,如果有人能指出我正确的方向,我会很感激。
var items = [[String: String]]()
var regions = ["NA", "EUW", "EUNE", "BR", "KR", "LAN", "LAS", "OCE", "RU","TR"]
override func viewDidLoad() {
super.viewDidLoad()
let pickerView = UIPickerView()
pickerView.delegate = self
pickerView.selectRow(0, inComponent: 0, animated: true)
regionPicker.inputView = pickerView
regionPicker.text = regions[0];
search.backgroundColor = UIColor.blackColor();
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
loadData("maj0r Lee Hung")
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell
cell.textLabel?.text = items[indexPath.row]
return cell
}
func loadData(name: String){
let escapedName = name.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
let url = "https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/\(escapedName!)"
Alamofire.request(.GET, url , parameters: [ "api_key":"BLAHBLAHBLAH" ])
.responseJSON { response in
switch response.result {
case .Success:
if let value = response.result.value {
let json = JSON(value)
print(json)
for (key: _, subJson: json) in json {
let id = json["id"].stringValue
let name = json["name"].stringValue
let iconID = json["profileIconId"].stringValue
let obj = ["id": id, "name": name, "iconID": iconID]
self.items.append(obj)
self.tableView.reloadData()
}
}
case .Failure(let error):
print(error)
}
}
}
答案 0 :(得分:0)
在您的代码中
cell.textLabel?.text = items[indexPath.row]
文本需要一个字符串,但是你传递一个字典。您需要获取项目[indexPath.row]并从中提取单个字符串。