我试图用不同类中检索到的数据更新UILabel,因此在ViewDidLoad中,我调用了该不同类中的方法,然后在该类中,在ViewController中调用一个方法来更新UILabel。下面是我试图运行的代码的简化版本:无法在不同类中调用不同方法后更改UILabel
import UIKit
class ViewController: UIViewController {
@IBOutlet var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
test().runTest()
}
func print() {
label.text = "test123"
}
}
和其他类:
import UIKit
class test: UIView {
func runTest() {
ViewController().print()
}
}
我不断收到话说打印到控制台上的错误消息:“致命错误:意外地发现零,而 “关于
而一个错误” label.text = “test123” 展开可选的值(LLDB)说: “线程1:EXC_Bad_Instruction(代码= EXC_(386_INVOP,子码=为0x0)”
预先感谢您的帮助。
您是否将插座连接到故事板中的标签? – StevenOjo
在你的'runTest'函数中,你正在创建视图控制器的一个新实例,并且你没有参考故事板就这么做,所以标签出口是零。当您调用视图控制器实例时,可以将视图控制器实例传递给'runTest',或者,最好让'runTest'返回值并让视图控制器本身负责更新其标签。这是一个糟糕的设计,有一个类更新其他类视图 – Paulw11
你如何组织你的视图控制器,我可能也建议重命名你的功能。 – joshLor