gpt4 book ai didi

json - 单击 Tableview 单元格不显示数据

转载 作者:行者123 更新时间:2023-11-28 15:10:42 25 4
gpt4 key购买 nike

我在使用 tableview 的 didSelectRowAt 函数时遇到问题。出于某种原因,虽然我的 segue 标识符和目标 View 是正确的,但当我单击该行时,它不会加载任何内容。此外,Xcode 通知我:

Cannot assign value of type 'Double?' to type 'String?'

但我找不到告诉我如何解决此问题的在线资源。作为引用,我想显示的数据来自嵌套的 JSON 提要。

JSON 结构

struct PlayerStatsParent:Decodable{
let rankings: [PlayerStats]
}

struct PlayerStats:Decodable {
let personaname: String?
let score: Double?
let solo_competitive_rank: Int?
let avatar: String?
}

单元格选择函数

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "showDetail", sender: self)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destination = segue.destination as? RankDetail {
destination.playerRank = rank[(rankTable.indexPathForSelectedRow?.row)!]
}
}

目标 View Controller 代码

import UIKit

class RankDetail: UIViewController {
@IBOutlet var rankLabel: UILabel!
@IBOutlet var scoreLabel: UILabel!

var playerRank:PlayerStats?

override func viewDidLoad() {
super.viewDidLoad()
rankLabel.text = "\(playerRank?.solo_competitive_rank)"
scoreLabel.text = playerRank?.score
}

最佳答案

还要检查你的选择方法。应该是这个。

  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

}

不是这个;

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "showDetail", sender: self)

如果您选择单元格。

关于json - 单击 Tableview 单元格不显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47685552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com