从函数设置UILabel:展开一个Optional值时意外找到nil

时间:2018-08-25 14:39:06

标签: ios swift xcode uilabel

我在while的{​​{1}}中有以下代码:

didFinishLaunchingWithOptions()

在我的AppDelegate.swift中,我有以下代码:

ViewController().changeLabel()
ViewController.swift中的

@IBOutlet var myLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // myLabel.text = "Hello, I'm in viewDidLoad." } func changeLabel() { print("I'm the test.") myLabel.text = "Hello, I'm in printSomething." } 正在工作。 myLabel.text = "Hello, I'm in viewDidLoad."中的viewDidLoad()也在起作用。

但是对于print("I'm the test.")中的changeLabel(),我总是会遇到以下错误:

  

线程1:致命错误:展开包装时意外发现nil   可选值

为什么它可以在myLabel.text = "Hello, I'm in printSomething."中工作,但不能在我的函数中工作?

2 个答案:

答案 0 :(得分:1)

df %>%
    mutate(M1_sava = as.numeric(gsub(",", "\\.", M1_sava))) %>%
    ggplot(aes(specie, M1_sava)) +
    facet_wrap(~ momento, nrow = 1) +
    coord_flip() +
    geom_col(aes(fill = M1_sava)) +
    scale_fill_gradient2(low = "white", high = "green") +
    theme_bw(base_size = 10)

是指动态创建的新VC,因为您必须像加载它一样

ViewController()

因为它位于情节提要中,所以您的上述代码仅在以编程方式创建vc时才有效,因此您必须在let vc = storyboard.instantiate /////// 中进行任何修改,但如果必须这样做,则可以在分派之后在派发中使用此代码

viewDidLoad

答案 1 :(得分:0)

由于您的 $post->date = (isset($request->date)) ? Carbon::createFromFormat('j-m-y - H:i', $request->date) : null; 是在Storyboard nib文件中定义的,因此如果您调用UILabel

,它将不会被加载并与View Controller建立连接。
ViewController().changeLabel()