我的 View 中有一些 socket ,我尝试在函数中以编程方式编辑它们。
Xcode 说:
unexpectedly found nil while unwrapping an optional value
但是,当我在 super.viewDidLoad()
之后编辑 viewDidLoad()
中的 socket 时,它就像一个魅力。
具有以下功能:
func test(){
localDeviceNameView.stringValue = "some stuff" //Found nil here
}
使用 viewDidLoad
:
override func viewDidLoad() {
super.viewDidLoad()
localDeviceNameView.stringValue = "some stuff" //Works well
}
我怎样才能让它发挥作用?
最佳答案
您可以在变量上使用 didSet。像这样:
@IBOutlet var localDeviceNameView : UIView! {
didSet {
localDeviceNameView.stringValue = "some stuff"
}
}
这种方法的优点在于,您仅在设置 localDeviceNameView
时才设置您的 stringValue,这是从 NIB/Storyboard 加载时的正确设置。
我认为这正是您所需要的。
关于ios - "unexpectedly found nil"超出 viewDidLoad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36357810/