我想在iOS中检查textfield的输入值是float还是int或string

时间:2015-09-24 16:08:58

标签: ios objective-c

我想检查textfield的输入值是float还是int,其余是字符串。

例如,如果用户在textfield中输入了43.34,我们将把它作为字符串。获取字符串值后,我必须确定它是浮点数还是int。

if (value is float)
{
    // do something
} 
else if (value is int)
{
    // do some thing
}
else
{
    // this is a string value
}

提前致谢。

1 个答案:

答案 0 :(得分:2)

因为数字是浮点数也是整数。 所以你必须先检查一个数字是否为整数,然后是浮点数和最后一个字符串。

- (BOOL)checkIsInteger: (NSString *)integerString{
    NSScanner* scan = [NSScanner scannerWithString:integerString];
    int val;
    return [scan scanInt:&val] && [scan isAtEnd];
}

- (BOOL)checkIsFloat: (NSString *)floatString{
    NSScanner* scan = [NSScanner scannerWithString:floatString];
    float val;
    return [scan scanFloat:&val] && [scan isAtEnd];
}

- (void)yourFunction: (NSString *)string{
    if ([self checkIsInteger:string]) {
        // This is integer
    }else if([self checkIsFloat:string]){
        // This is float
    }else
        // This is string
}