在标签中显示名称(swift)

Posted

技术标签:

【中文标题】在标签中显示名称(swift)【英文标题】:Display name in label (swift) 【发布时间】:2020-02-26 12:41:41 【问题描述】:

我尝试在标签“scoreForEachRoundTeams”中设置玩家名称。但是当我尝试这样做时,我收到错误消息:"Value of type '[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
   

【问题讨论】:

【参考方案1】:

finalScoreEachRound 是一个数组,而不是您需要的单个属性

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

所有人

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

【讨论】:

它起作用了,但只有数组中的第一个名字。 如果我这样做,它会打印所有名称。但我想在我的标签上打印一个名字。对不起我的困惑。 scoreForEachRoundTeams 一次只能保存 1 个文本,但是您将数组设置为一个项目或全部设置为答案,我不知道您在寻呼机中的哪个位置显示该 vc ??? ? 首先我有我的 VC 和名称的 tableView。当我按下一个名称时,会打开一个弹出窗口。在那个弹出窗口中,我想在我按下的单元格之后显示名称。 实现表委托方法didSelectRowAt,只发送1个项目items[indexPath.row]

以上是关于在标签中显示名称(swift)的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 在整个项目中保持标签栏显示

在 Swift 的选择器视图中显示 API 的名称

如何在 Xcode swift 的 UITableview 单元格中显示当前股票价格?

产品在购物车中时显示数量标签(Swift 5)

无法在标签栏 iOS Swift 中显示图标

swift 在标签或textView中显示HTML数据