2017-10-11 4 views
-1

Je continue d'obtenir une valeur nulle lorsque j'appuie sur le bouton.Récupération d'une "erreur fatale: découverte inattendue nulle lors du déballage d'une valeur optionnelle" lors de la saisie de la valeur de l'étiquette sur le bouton presse

import UIKit 

class ViewController: UIViewController { 
//MARK: Properties 

@IBOutlet weak var txt_vrednost: UITextField! 
@IBOutlet weak var btn_dodaj: UIButton! 
@IBOutlet weak var lbl_stanje: UILabel! 
var novcanik = 0.0 

//MARK: Acttion 

@IBAction func btn_dodaj_pressed(_ sender: Any) { 

    let values = Double(txt_vrednost.text!) 
    novcanik = novcanik + values! 
    lbl_stanje.text=String(novcanik) 

} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view, typically from a nib. 
    } 
} 
+0

Qu'attendez-vous? – Wez

+2

'txt_vrednost.text' n'est pas convertible en double, donc il échoue. Fournissez une valeur de repli et ne déballez pas avec force. – the4kman

Répondre

1

Tout d'abord, assurez-vous que tous vos points de vente sont connectés au storyboard. Vous utilisez un dépliage de force partout, ce qui provoque un blocage:

import UIKit 

class ViewController: UIViewController { 

//MARK: Properties 

@IBOutlet weak var txt_vrednost: UITextField! 
@IBOutlet weak var btn_dodaj: UIButton! 
@IBOutlet weak var lbl_stanje: UILabel! 

var novcanik = 0.0 

//MARK: Action 

@IBAction func btn_dodaj_pressed(_ sender: Any) { 
    guard let values = txt_vrednost.text as? Double else { 
     print("not convertible") 
     return 
    } 
novcanik = novcanik + values 
lbl_stanje.text = "\(novcanik)" 
} 

override func viewDidLoad() { 
super.viewDidLoad() 

// Do any additional setup after loading the view, typically from a nib. 

} 
}