Ошибка отображения ошибки расчета в приложении iOS - PullRequest
1 голос
/ 20 января 2020

Я создаю iOS приложение, которое отвечает на введенные переменные.

Однако, есть одно сообщение об ошибке, чтобы напечатать результат, и я понятия не имею, чтобы исправить ошибку.

Первое сообщение об ошибке

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

Поток 1: неустранимая ошибка: неожиданно обнаружен ноль при неявном развертывании необязательного значения

Что я пытался сделать

После получения первого комментария я дважды проверил ResultViewController.swift и страница перехода была изменена.

Мне нужно показать result is 2 вместо res... Как я могу это исправить ?

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) "
    }
}

1 Ответ

2 голосов
/ 20 января 2020

Добавьте ограничения на свой ярлык либо из раскадровки, либо программно

 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) "
        }

или из любого ограничения, которое вы хотите добавить для своего ярлыка

...