我只是想在Swift中将变量与UILabel连接起来。我看了很多教程但是我一直都有错误。主要原因似乎是@IBOutlet weak var str = UILabel!
始终为零。当我尝试为其分配值时,控制台会打印fatal error: unexpectedly found nil while unwrapping an Optional value
并在编码界面内,突出显示行self.stringLabel.text = self.string
,错误为Thread 1: EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0
。这是我的代码:
@IBOutlet weak var stringLabel: UILabel!
var string: String!
override func viewDidLoad() {
self.stringLabel.text = self.string
super.viewDidLoad()
}
@IBAction func buttonClick(sender: UIButton) {
self.stringLabel.text = "Button clicked!"
}
我尝试了围绕变量的.self
和.text
的不同定位,但没有成功。我是在正确的轨道上吗?而且,如果是这样,我做错了什么?如果我完全错了,如何将标签的文本设置为变量的文本?非常感谢你提前。
编辑:我已将故事板中的标签与@IBOutlet
e
答案 0 :(得分:1)
如果你在界面构建器中连接了它,可以处理你的UILabel(确保是这样的)但是你的字符串对象是未初始化的,你必须用 000000,
11111111,
222222222,
33333333
分配它或者如果你想要使用可选的var string: String = ""
您可以在全局范围内执行此操作,但我建议所有视图控制器都使用var string: String? = ""
方法分配这些类型的事物。
编辑:我尝试重现问题,但我得到了预期的结果。这是我的视图控制器代码
init()
答案 1 :(得分:0)
问题是变量string
是nil
。
隐式展开的可选(!
)在使用时必须是非零的。
尝试一些真实的东西:
var string = "Hello there"
答案 2 :(得分:0)