2016-04-03 14 views
0

Nasıl diyebilirim: Eğer bir soru daha yanıtlamak için yeterli zaman varsa label.text == herhangi Intdiyebilirim nasıl label.text eğer == herhangi Int

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

çok iyi olurdu eğer : label.text == herhangi Int hariç 42

soru ayırınız ve eğer

+1

Yani "label.text" bir "Int" ise mi? Çünkü label.text == (Any, Int) ', tamamen farklı bir şey önermektedir. – Eendje

cevap

1

böyle bir şey mi arıyorsunuz yardımın için teşekkür: diyebilirim nasıl

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! 
Bu biraz dağınık görünüyorsa

, bunu gibi sarın:

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

Hoşgeldin StackOverflow'daki için, sorunuz net değil ama cevaplamaya çalışacağım, bir label malı .text hep olacak bir Dize nesnesi, bu nedenle asla bir Int, ancak ikinci sorunuzu okuyarak bir tamsayı sayı olup olmadığını kontrol etmek istediğinizi varsayalım Int bir nesne, böylece bir Dize içerip içermediğini kontrol etmek için bir işlev oluşturabilirsiniz sayı:

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

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

Ve bu şekilde kullanın:

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

İkinci soru: böyle bir şey yapmak için önce yarattığımız işlevini değiştirebilir bazı sayılar kaçınmak için:

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; 
     } 

Ve bu gibi kullanabilirsiniz:

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" 
}