我正在从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;
答案 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)