2017-06-24 15 views
1

これは簡単ですが、Webを検索するソリューションを見つけることができません。検証する必要がある以下の変数があります。検証が正しくない場合は、アプリを停止してストーリーボードに戻す必要があります。迅速なテキストフィールドと値の検証

let mortgageTerm = Double(mortgageTermLabel.text!) 
    let name 
    let mtgCashback = Double(casbackRecieved.text!) 
    let mtgBalance = Double(mortgageBalance.text!) 
    let rate = Double(currentRate.text!) 
  • 住宅ローンの用語は、残高が10,000より大きい

  • 率が大きくなければならないことが必要で60

  • 抵当に値6より大きく、以下にする必要があります1より小さく10より小さい

そして値はselでなければならないコントロールのために使用されます@IBOutlet weak var lenderName: UITextField! - 私は選択するユーザーにオプションを与える顧客のピッカーです。あなたがここguard letを使用することができます

答えて

0

はあなただけでこのように復帰する前に友好的警告メッセージを表示することができ、

guard let mortgage = Double(mortgageTermLabel.text!) , mortgage > 6 && mortgage <= 60 else {return} 

また

guard let mortgage = Double(mortgageTermLabel.text!) , mortgage > 6 && mortgage <= 60 else { 
    let alert = UIAlertController(title: "blah", message: "blah blah", preferredStyle: .alert) 
    alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil)) 

    self.present(alert, animated: true, completion: nil) 
    return 
} 

guard let balance = Double(mortgageBalance.text!) , balance > 10000 else { 
    let alert = UIAlertController(title: "blah", message: "blah blah", preferredStyle: .alert) 
    alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil)) 

    self.present(alert, animated: true, completion: nil) 
    return 
} 

guard let date = YourDate , date < Date() else { 
    let alert = UIAlertController(title: "blah", message: "blah blah", preferredStyle: .alert) 
    alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil)) 

    self.present(alert, animated: true, completion: nil) 
    return 
} 
+2

あなたは 'ガードlet'を必要としない例です。 。 'もしlet 'も同様に有効です。 – rmaddy

+0

@rmaddy私が理解したように、彼らがガードを発明した理由は、英語のライティングを順守することです。ですから、英語では、「ガード・レッツ」は、何かが満たされなければ、私の変数が何らかの要件を満たすことを望んでいると言っています。もし 'if let'を使うと、内部で次のチェックをしてからelseの' return'をしなければなりません。それは英語のようなものではありません。 –

+0

私は 'ガードレッツ'が間違っていたとは言わなかった。あなたはそれが唯一の解決策であるかのように「必要な」ものであると述べました。別の有効なオプションがあることを指摘しています。 – rmaddy

関連する問題