2016-11-18 5 views
0

欠けている変数を解決する電卓アプリを作っています。画面上の任意の場所をタップしてキーボードを閉じるコードを追加しました「戻る」キーを押してください。スレッド1:EXC_BAD_INSTRUCTIONキーボードとnilの値を無効にする問題(.isNaN)

この関数は、欠落している変数(.isNaNを使用)が不足している変数を解決できるように、if elseステートメントを追加する前に機能していました。ここで

は、その特定のビューコントローラのための私のコードです:

import UIKit 

class findSpeed: UIViewController, UITextFieldDelegate { 


@IBOutlet weak var vValue: UITextField! 
@IBOutlet weak var dValue: UITextField! 
@IBOutlet weak var tValue: UITextField! 
@IBOutlet weak var answer: UILabel! 

@IBAction func solve(_ sender: UIButton) { 

    let v = Float(vValue.text! as String); 
    let d = Float(dValue.text! as String); 
    let t = Float(tValue.text! as String); 

    let solvev = (d!/t!); 
    let solved = (v!*t!); 
    let solvet = (d!/v!); 

    if (v!.isNaN) { 
     answer.text = "Answer: \(solvev)" 
    } 

    else if (d!.isNaN) { 
     answer.text = "Answer: \(solved)" 
    } 

    else { 
     answer.text = "Answer: \(solvet)" 
    } 

} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    vValue.delegate = self; 
    dValue.delegate = self; 
    tValue.delegate = self; 
    self.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: Selector("dismiss"))) 
} 

func dismiss() { 
    vValue.resignFirstResponder() 
    dValue.resignFirstResponder() 
    tValue.resignFirstResponder() 
} 

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    vValue.resignFirstResponder() 
    dValue.resignFirstResponder() 
    tValue.resignFirstResponder() 
    return true 
} 


override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 

私は電卓があり、このビューコントローラにリンクするボタンをタップしたときに私が受けてるエラーが発生します。 Picture of error

+0

FYI - あなたの問題はキーボードを無効にすることとは関係なく、追加された 'else'ステートメントとは関係ありません。あなたのコードは 'viewDidLoad'でクラッシュしていますので、' solve'のコードはどうやって問題になりますか? – rmaddy

答えて

0

をデバッガを使用して、アプリがクラッシュする理由を確認してください。明らかにvValvenilです。これは、Interface Builderのコンセントに何も接続していないことを意味します。

コンセントの接続を修正して、質問に投稿されたエラーが修正されます。

また、強制アンラッピングをすべて削除する必要があります。さもなければ、あなたは対処するより多くのクラッシュを持つつもりです。 What does "fatal error: unexpectedly found nil while unwrapping an Optional value" mean?

関連する問題