2014-10-01 97 views
2

我試圖從兩個UITextFields計算兩個值。我所做的是使answerScreen等於valueOne,我把它變成了IntvalueTwo,這應該是與!變種相反。有人可以告訴我我做錯了什麼嗎?Swift - 兩個UITextFeild的值相乘

import UIKit 

class ViewController: UIViewController { 
    // The answer will be here 
    @IBOutlet weak var answerScreen: UILabel! 
    // The first number 
    @IBOutlet weak var valueOne: UITextField! 
    // The second number 
    @IBOutlet weak var valueTwo: UITextField! 
    // The equals button 
    @IBAction func calculateValues(sender: AnyObject) { 
     answerScreen.text = valueOne.text.toInt() * valueTwo! 
    } 

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

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

你是什麼意思 「的變種相反」 是什麼意思? – fluidsonic 2014-10-01 02:27:32

回答

4
let result = (valueOne.text.toInt() ?? 0) * (valueTwo.text.toInt() ?? 0) 
answerScreen.text = "\(result)" 

將文本字段值轉換爲Int或使用0如果轉換失敗。

+0

感謝您的回覆。你能向我解釋爲什麼你把它變成一個常量,什麼是「??」手段? – 2014-10-01 02:42:06

+0

我將它分配給一個常量,使代碼更具可讀性(比如果我將計算放入字符串插值)。 '??'是[nil coalescing操作符](https://developer.apple.com/library/ios/documentation/swift/conceptual/Swift_Programming_Language/BasicOperators.html#//apple_ref/doc/uid/TP40014097-CH6- XID_124)。 '一個??如果不是'nil'或'b',則b'使用'a'。如果'.toInt()'返回'nil',因爲用戶沒有輸入有效的數字,這是一個回退。 – fluidsonic 2014-10-01 02:45:13

-1

一個可以嘗試

var temp = (firstTextField.text! as NSString).integerValue * (secondTextField.text! as NSString).integerValue 

有關設定值的UILabel

self.resultLable.text = String("\((firstTextField.text! as NSString).integerValue * (secondTextField.text! as NSString).integerValue)")