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

    //Rest of the code 
} 

Her şey iyi çalışıyordu ama dün bu hatayı alıyorum sonra Xcode'ımı güncelledim. Lütfen yardım et. Bu onun nil olmadığını görmek için çalışıyorsanız Sonra nildeğeri hiçbir zaman sıfır olamaz, karşılaştırmaya hızlıca izin verilmez. 2.2

değil, güven bana söylediğini

Int(textField.text!)! // Bu sondaki ünlem (patlama):

+2

Eğer 'Int ("someValue")!' Kullanırsanız Çünkü, zaten ek değerlendirme gereksiz bunun da 'nil' olmadığına emin olan derleyici söylüyoruz. – Eendje

cevap

3

nil'u denetlemek için Int başlatıcısını isteğe bağlı olarak tutmak için sondaki ünlem işaretini kaldırmanız yeterlidir.

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

    //Rest of the code 
} 
+0

Teşekkür ederim. İşe yaradı!! Neden daha önce hiç hata yapmadığımı biliyor musun? – vsvishnu

+0

Daha önce hiç bir uyarı/hata olmadığını hayal edemiyorum. – vadian

+0

Daha önce herhangi bir uyarı/hata olmadığından eminim. Neyse problem çözüldü :) – vsvishnu

0

Sen zorla Int unwrapping ediyoruz ya != nil

ile seni o kadar gibi seçeneklere uygun bir unwrap yapmak düşündürmektedir değil:

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

whate için ise ver nedeni textField.text bir karakter dizisi alır, bu kod else ifadesinin içinde başarısız olur.

Zorlu isteğe bağlı paketlemeyi ele alma biçiminiz, ancak bir kazayla sonuçlanacaktır.

+0

Anında yanıtınız için teşekkür ederiz. Deneyeceğim. Bu metin alanı, sayılardan başka hiçbir değeri kabul etmeyecektir. – vsvishnu

+0

Kullanmaktan kaçınmak için iyi bir uygulama! Ben tembel haha ​​olduğumda kullanmamıza rağmen oturum açmak için oturum açın. –

İlgili konular