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"
}
Yani "label.text" bir "Int" ise mi? Çünkü label.text == (Any, Int) ', tamamen farklı bir şey önermektedir. – Eendje