我怎么说:if label.text == any Int
if label.text == (Any, Int) {
label1.text = "Might be another Integer"
}
如果你有足够的时间来回答另一个很棒的问题: 我该怎么说:if label.text ==任何Int除了42
请将问题分开,并感谢您的帮助
答案 0 :(得分: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!")
}
答案 1 :(得分:0)
欢迎使用StackOverflow,你的问题不明确,但我会尝试解决,.text
的属性label
将始终是String类型的对象,因此它永远不会是Int,但是通过阅读你的第二个问题,我假设你想要检查是否是一个整数而不是一个对象Int,所以你可以创建一个函数来检查一个字符串是否包含一个数字:
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"
}