使用Tableviews

时间:2015-12-10 08:55:58

标签: ios objective-c json swift uitableview

嗨我对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)
            }
    }
}

1 个答案:

答案 0 :(得分:0)

在您的代码中

cell.textLabel?.text = items[indexPath.row]

文本需要一个字符串,但是你传递一个字典。您需要获取项目[indexPath.row]并从中提取单个字符串。