首页 > 解决方案 > 在标签中显示名称(swift)

问题描述

我尝试在我的标签“scoreForEachRoundTeams”中设置玩家名称。但是当我尝试这样做时,我收到错误消息:“'[Player] 类型的值?' 没有成员'名字'"

    var finalScoreEachRound : [Player]? // Here I call after my "Player" class
    @IBOutlet weak var scoreForEachRoundTeams: UILabel!
     var competitions : [Comepetitions]?
    let scoreForEachRoundCell = "scoreForEachRoundCell"

    override func viewDidLoad() {
        super.viewDidLoad()
        print(Player.self)

        scoreForEachRoundTeams.text = finalScoreEachRound.name //Here I try show my Player name 
    }

这是我的 Player 课程

   var name : String?
   var score : Int
   var scoreForEachRound: [Int] = []

   public var description: String { return "\(String(describing: name)) : \(score)" }

   init(name: String?, score: Int) {
       self.name=name
       self.score=score

   }
   static func < (lhs: Player, rhs: Player) -> Bool {
       return lhs.score > rhs.score
   }

   static func == (lhs: Player, rhs: Player) -> Bool {
       return lhs.name == rhs.name && lhs.score == rhs.score
   }

   func totalScore() -> Int {
       var totalScore = 0
       for score in scoreForEachRound{
           totalScore += score
       }
       return totalScore
   }
}

标签: iosswiftxcode

解决方案


finalScoreEachRound是一个数组而不是一个属性你需要

scoreForEachRoundTeams.text = finalScoreEachRound?.first?.name ?? "No init"

对所有人

scoreForEachRoundTeams.text = finalScoreEachRound!.compactMap { $0.name }.joined(separator:"---")

推荐阅读