- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 swiftyJson 来解析数据,但不知道如何解析数组。这是代码。
import UIKit
import Alamofire
import SwiftyJSON
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var json:JSON = JSON.null
var urlSession = URLSession(configuration: .default)
@IBOutlet weak var myTableView: UITableView!
var pokamon = [[String:AnyObject]]()
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return pokamon.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
var dict = pokamon[indexPath.row]
cell.nameLbl.text = dict["name"] as? String
cell.typesLbl.text = dict["types"]?[0] as? String
cell.hpLbl.text = dict["hp"] as? String
cell.subtypeLbl.text = dict["subtype"] as? String
if let image = URL(string: dict["imageUrl"] as! String){
let task = urlSession.downloadTask(with: image) { (url, repsponse, error) in
if error != nil{
print("sorry")
return
}
if let okURL = url{
do{
let downloadImage = UIImage(data: try Data(contentsOf: okURL))
DispatchQueue.main.async {
cell.myImage.image = downloadImage
}
}catch{
print("error")
}
}
}
task.resume()
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 224
}
override func viewDidLoad() {
super.viewDidLoad()
myTableView.delegate = self
myTableView.dataSource = self
Alamofire.request("https://api.pokemontcg.io/v1/cards").responseJSON(completionHandler: { response in
if response.result.isSuccess {
let json:JSON = try! JSON(data: response.data!)
let swiftyJsonVar = JSON(response.result.value!)
if let resData = swiftyJsonVar["cards"].arrayObject{
self.pokamon = resData as! [[String:AnyObject]]
}
if self.pokamon.count > 0{
self.myTableView.reloadData()
}
} else {
print("error: \(response.error)")
}
})
}
}
在 tableView 的 cellForRowAt 中,它显示“下标的使用不明确”,代码如下,不知道如何解决。其余的像“name”、“hp”、“subtype”都没有问题!
cell.typesLbl.text = dict["types"]?[0] as? String
谁能帮我解决这个错误?谢谢!
最佳答案
编译器必须知道任何下标对象的类型。告诉编译器您需要一个字符串数组。
cell.typesLbl.text = (dict["types"] as? [String])?.first
在 Swift 3+ 中,所有 JSON 值都是 Any
而不是 AnyObject 所以声明数组
var pokamon = [[String:Any]]()
关于swift - 如何使用swiftyJson获取TableView中的arrayvalue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52033809/
我有以下数组: var date = { '2015': [{ 'month': 'Januar', 'day': 31 }, { 'month': 'Fe
我想更改 slotList 的值。 slotList[1][1] = "1234"; 我该如何解决这个问题? 这是我尝试过的: JSON: { "slotList" : [ [ "1452
我正在尝试使用 PHP 和 Google api 将数据推送到 firestore 数据库。 在我在网络上看到的文档和示例中,我可以在发送数据时使用 mapValue 和 arrayValue。 我使
这是我的代码: var iconArray = ["icon01", "icon02"]; var iconWidth = $("'." + iconArray[0] + "'").css('widt
我是一名优秀的程序员,十分优秀!