2015-08-28 40 views
-1

我試圖將輸入到UITextField中的數字與聲明的常量Int進行比較。下面是我當前的代碼,它在if語句上保持失敗。將Int值與格式化字符串比較爲Swift中Int的失敗

(我花了一段時間來找到代碼中的UITextField轉換爲int,因爲它看起來像是來自以前使用的toInt()2.0離開後改變。)

這裏我的最終目標是最終會有幾個UITextFields,它們的用戶輸入與常量進行比較,然後根據它們是否爲<或>它會生成一個建議。

class ViewController: UIViewController { 

@IBOutlet weak var fshNumber: UITextField! 

@IBOutlet weak var mdMessage: UILabel! 


@IBAction func button(sender: AnyObject) { 
    let fshLimit:Int = 100 
    var fshInt = NSNumberFormatter().numberFromString(fshNumber.text)!.integerValue 
    if (fshLimit>fshInt) { 
     mdMessage.text = "You need help" 
    } else { 
     mdMessage.text = "You'll be okay" 
    } 

} 
+2

你說的失敗是什麼意思? – jtbandes

+0

您正在提供'fshNumber.text'的值,將其打印並添加到問題中。更好的是提供一個獨立的例子。當我替換「100:或99」時,我得到了預期的結果,使用調試器和print()將諸如'fshNumber.text'之類的東西分解爲中間語句以進行調試 – zaph

+1

在Swift 2.0中,'str.toInt() ''已被替換爲'Int(str)'。注意,返回一個可選的,你可能應該使用可選的綁定來解包它'if let fshInt = Int(fshNumber.text){'爲了避免由於用戶輸入而導致的崩潰 – vacawama

回答

0

相反的:

var fshInt = NSNumberFormatter().numberFromString(fshNumber.text)!.integerValue 

使用這個代替:

var fshInt = (fshNumber.text as NSString).integerValue 
+0

感謝您的摘錄! – Murph