gpt4 book ai didi

ios - Swift 无法使用常规方法将 Int 转换为 String

转载 作者:搜寻专家 更新时间:2023-11-01 06:45:35 24 4
gpt4 key购买 nike

将 Int 转换为 String 的一般目的是显示一个“分数”,每次点击 SKSpriteNode 时该分数加一。 GameScene.swift 中的 GameScene 类可以识别该手势。然后它使用名为“变量”的结构将“分数”发送到我的 GameViewController,它将通过 UILabel 显示分数。这是我需要将 Int 转换为 String。简单的。除了我尝试过的每种方法都以错误结束: fatal error :在展开可选值时意外发现 nil。此外,每当我尝试将“Score”视为可选项(添加“?”)时,XCode 都会给我另一个错误并告诉我将其删除。

TL;DR:我需要将 Int 转换为 String,而所有通常有效的方法都无效。

我试过的方法:

  1. scoreLabel.text = NSNumber(integer: Score).stringValue
  2. scoreLabel.text = "\(Score)"
  3. scoreLabel.text = String(Score)
  4. scoreLabel.text = toString(Score)
  5. scoreLabel.text = "\(Score.description)"
  6. scoreLabel.text = Score.description
  7. scoreLabel.text = "\(NSNumber(integer: Score).stringValue)"

我还重新启动了 XCode 和 Mac。我错过了一些明显的东西吗?请帮助菜鸟。

编辑 #1:我忘了说我一直在 GameScene.swift 和 GameViewController.swift 中记录“Score”;两者都返回正确的值。

最佳答案

您收到的错误不是因为正确的代码,而是因为您的“分数”变量为零。我经常使用的是 ->

scoreLabel.text = "\(Score)"

然后,将“Score”的值设置为 0,这样它的值就不会返回 nil。

var Score : Int = 0

最后,要显示分数,您应该使用 SKLabelNode。

var scoreLabel = SKLabelNode(fontNamed: "American Typewriter")

然后,在你的didMove(toView)

override func didMove(to view: SKView) {
scoreLabel.text = "\(Score)"
scoreLabel.fontColor = UIColor.green
scoreLabel.fontSize = 30
scoreLabel.position = CGPoint(x: 0, y: self.frame.height / 4)
self.addChild(scoreLabel)
}

关于ios - Swift 无法使用常规方法将 Int 转换为 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31259290/

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