2016-04-03 37 views
0

我怎麼能說:如果label.text ==任何詮釋如何,我可以說,如果label.text ==任何詮釋

if label.text == (Any, Int) { 
      label1.text = "Might be another Integer" 
     } 

如果你有足夠的時間來回答一個問題,這將是巨大的: 我怎麼能說:如果label.text ==任何詮釋,除了42

請分開的問題,並感謝大家的幫助

+1

你的意思是,如果'label.text'是一個'Int'?因爲'label.text ==(Any,Int)'提示了完全不同的東西。 – Eendje

回答

1

您正在尋找這樣的事情:

class Label { 
    var text: String? = "43" 
} 

let label = Label() 

if let text = label.text, let int = Int(text) where int != 42 { 
    print("I'm \(int), not 42!") 
} 

// prints: I'm 43, not 42! 

如果這看起來有點亂,你可以用它像這樣:

if 
    let text = label.text, 
    let int = Int(text) 
    where int != 42 
{ 
    print("I'm \(int), not 42!") 
} 
0

歡迎的StackOverflow,你的問題還不清楚,但我會盡量ANWER,一個label的財產.text永遠是String類型的對象,所以它永遠不會是一個Int,但通過閱讀你的第二個問題,我假設你想檢查是否是一個整數,而不是一個對象Int,所以你可以創建一個函數來檢查一個String是否包含編號:

function checkIfAStringIsANumber(str:String)->Bool{ 
     let decimalCharacters = NSCharacterSet.decimalDigitCharacterSet() 
     let decimalRange = str.rangeOfCharacterFromSet(decimalCharacters) 

     if decimalRange != nil { 
      return true; 
     } 
return false; 
} 

並以這種方式使用它:

if (checkIfAStringIsANumber(label.text)) { 
    label1.text = "Label contains an integer value!" 
} 

第二個問題: 爲了避免一些數字,你可以修改我們所創建的函數之前做這樣的事情:

function checkIfAStringIsANumberWithoutSomeValues(str:String,excludedValues:[Int])->Bool{ 
let decimalCharacters = NSCharacterSet.decimalDigitCharacterSet() 
let decimalRange = str.rangeOfCharacterFromSet(decimalCharacters) 

       if decimalRange != nil { 
        let intObj = Int(str); 
         if excludedValues.contains(intObj) { 
         return false; 
         } 
        return true; 
       } 
       return false; 
     } 

而且你可以使用它像這樣:

let excludedValues:[Int] = [42,31,89,101] //Values that you want to exclude, if you want to exclude only 42 simply write [42] 
if(checkIfAStringIsANumberWithoutSomeValues(label.text,excludedValues){ 
label1.text = "integer found" 
}