gpt4 book ai didi

iOS 标签不会使用字符串值更新文本,但在 Swift 中打印字符串可以正常工作

转载 作者:行者123 更新时间:2023-11-30 12:31:11 25 4
gpt4 key购买 nike

这两天我一直在寻找解决这个问题的方法。我遇到问题的代码部分是:[说practiceLabelVar获取值可选(Goldfish)]

class PracticeTyping: UIViewController {   
@IBOutlet weak var practiceLabel: UILabel!

var practiceLabelVar: String?
var x = "test"

override func viewDidLoad() {
super.viewDidLoad()

if let newPracticeLabelVar = practiceLabelVar {

self.practiceLabel.text = newPracticeLabelVar

print ("\(newPracticeLabelVar)")

x = newPracticeLabelVar

} else {

print ("\(x)")

}
}
}

我在控制台中得到的输出如下:

test

Goldfish

注意:代码打印 else 语句中的值,然后打印 if let 语句中的代码。

practiceLabel.text 没有更改并保留其默认值。

请帮忙。谢谢

最佳答案

终于明白了。根据您上面添加的评论,您正在从另一个 View 设置“Goldfish”,如上所述,下面是相同 @IBAction funcpracticeTyping(_ sender: Any) { 的代码
PerformSegue(withIdentifier:“practiceTypingSegue”,发件人:self)
让 PracticeTypingVar: PracticeTyping = self.storyboard?.instantiateViewController(withIdentifier: "PracticeTypingView") as!练习打字
PracticeTypingVar.practiceLabelVar = myFavoriteAnimals[(sender as AnyObject).tag].name
self.present(PracticeTypingVar, 动画: true, 完成: nil)
}

你在这里所做的是你正在呈现“PracticeTyping”viewController 2次,一次使用performSegue(),另一次使用self.present(viewController),这是错误的。它首先打印“test”的原因是,当您通过performSegue呈现 View 时,您没有设置“practiceLabelVar”的值。因此,删除 performSegue(withIdentifier: "practiceTypingSegue", sender: self) 就可以了。

关于iOS 标签不会使用字符串值更新文本,但在 Swift 中打印字符串可以正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43534904/

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