2016-03-23 12 views
0
if(Int(textfield.text!)! != nil) { //value of type 'Int' can never be nil, comparison isn't allowed. 

    //Rest of the code 
} 

すべてに許可されていませんが正常に動作しましたが、昨日は、私はこのエラーを取得していた後、私のXcodeを更新しました。助けてください。値がnilになることはありません、比較が迅速2.2

+2

あなたが 'Int(" someValue ")!'を使用すると、コンパイラには 'nil 'ではないことがわかりますので、追加の評価は冗長です。 – Eendje

答えて

3

nilを確認するには、末尾の感嘆符を削除して、Intイニシャライザの結果をオプションとして保持してください。

if Int(textfield.text!) != nil { 

    //Rest of the code 
} 
+0

ありがとう。それはうまくいった!なぜ私は前に何のエラーもなかったのですか? – vsvishnu

+0

前に警告/エラーがなかったとは思いません。 – vadian

+0

前に警告/エラーがないと確信しています。とにかく問題を解決した:) – vsvishnu

0

あなたは強制的のIntをアンラップしている:

Int(textField.text!)! //この末尾に感嘆符(バン)が、これは、あなたがそのゼロかどうかを確認しようとしているゼロ

はありませんが、私を信頼し、言っていますか!= nil

と私はあなたがそうのようなoptionalsの適切なアンラップを行うことを示唆している:

if let textInt = textField.text, integerUnwrapped = Int(textInt) { 
    // Rest of the code 
} else { 
    // Handle if either the text or integer is actually nil 
} 

場合whateのためにver reason textField.textは文字列を取得しますが、このコードはelse文の中で失敗します。

ただし、強力なオプションのアンラップを処理する方法ではクラッシュする可能性があります。

+0

お返事ありがとうございます。やってみます。このテキストフィールドは数字以外の値を受け入れません。 – vsvishnu

+0

!の使用を避けることの良い習慣!私は怠惰なときに私はそれを使用していますが、解凍するために虎 –

関連する問題