JSONArray无法基于indexPath获取数组

时间:2017-08-02 20:17:27

标签: xcode uitableview

我正在从JSon数组创建一个表列表视图。但是我无法根据indexPath显示数组名称。我尝试过indexOf,但它不可用。

所以,让我们在第1行说,它会显示'测试'在第2行,它将显示' Yeeea'。我是新手,很快就被卡住了......通常这应该很简单:(

定义tt_array

var tt_array: Array<Any>

ViewDidLoad中的某个地方

self.tt_array = jsonObj["get_array_list"] as! Array

在我们的tt_array中 - 打印(tt_array)

[{
    "array_name" = Testing;
    ourid = 4;
    total = 2;
}, {
    "array_name" = Yeeea;
    ourid = 7;
    total = 1;
}]

在我们的cellForRowAt

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)

var listthis = self.tt_array[indexPath] **error here**
        var array_name = listthis['array_name']


        cell.textLabel?.text = "TEST"

        // Configure the cell...

        return cell
    }

错误说:无法下标类型&#39;数组&#39;索引类型为&#39; IndexPath&#39;

2 个答案:

答案 0 :(得分:0)

首先使用更具体的类型声明数组

var tt_array = Array<[String:Any]>()

您必须获取索引路径的

let listthis = self.tt_array[indexPath.row]

并且你必须将值向下转换为String,顺便说一下:Swift不支持文字字符串的单引号。

let array_name = listthis["array_name"] as? String

旁注:这不是PHP或javascript,使用 camelCased 变量名而不是 snake_cased

答案 1 :(得分:0)

这是你的回答。

var list = self.tt_array[indexpath.row] as? NSDictonary
var array_name = list["array_name"] as? String

print(array_name)