ios - "unexpectedly found nil"超出 viewDidLoad

标签 ios swift macos

我的 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/

相关文章:

html - ionic 3 : How to Set Background to Transparent in IOS with QR Scanner Plugin?

ios - Firebase 和后台运行的预定通知

ios - 如何区分指纹和 TOUCH ID

ios - 4 英寸 iPhone 中的 uitableviewcell uiimage 自动布局问题

ios - 什么是 objc_selector 实现?

linux - 在多个文件上运行命令并保持相同的名称

java - 为 Windows 和 Mac 制作 Java 应用程序

ios - 如何添加计时器?

ios - 无法使用两个 # 或更多将 NSString 解析为 NSURL

iphone - 如何使循环异常?