首页 > 解决方案 > 在 iOS 应用上显示计算错误时出错

问题描述

我正在创建响应输入变量的 iOS 应用程序。

但是,打印结果时出现一条错误消息,我不知道要修复该错误。

第一条错误消息

        let result = x + y
        label.text = "result is \(result) "

线程 1:致命错误:在隐式展开可选值时意外发现 nil

我试图做的

在收到第一条评论后,我再次检查ResultViewController.swift并更改了转换页面。

我需要的是展示result is 2res... 该如何解决?

ViewController.swift

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // aquire ResultViewController from segue
        let resultViewController:ResultViewController = segue.destination as! ResultViewController
        // set numbers
        resultViewController.x = 1
        resultViewController.y = 1
    }

    @IBAction func unwind(_ segue: UIStoryboardSegue) {
        // called after returning back from segue 
    }
}

ResultViewController.swift

import UIKit

class ResultViewController: UIViewController {

    @IBOutlet weak var label: UILabel!

    var x:Int = 0
    var y:Int = 0

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.

        let result = x + y
        label.text = "result is \(result) "
    }
}

标签: iosswiftxcodexcode11

解决方案


从情节提要或以编程方式在标签上添加约束

 override func viewDidLoad() {
         super.viewDidLoad()

            label.translatesAutoresizingMaskIntoConstraints = false
            label.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
            label.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
            label.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
            label.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true

            let result = x + y
            label.text = "result is \(result) "
        }

或您想在标签上添加的任何约束


推荐阅读