ios - 检查UITextField是否具有大于0的数值

标签 ios objective-c uitextfield

我有一个UITextField,我只想要一个大于0的数字(我不需要非数字字符或值0)

这是我检查是否为空的方法:

if(seizure.text.length==0)

这是我检查是否等于0的方法:
else if(seizure.text doubleValue]==0)

如何检查非数字字符?

最佳答案

NSScanner 在这里会做得很好。与-[NSString doubleValue]不同,它的scanDouble:可以解析然后告诉您是否消耗了整个字符串,因此您将知道存在非数字字符。

演示一些测试用例。有关预期结果的描述,请参见注释。

NSArray * texts = @[// First four unacceptable because non-numeric
                    @"", @"Hello, world!", @"1.0 excelsior", @"Jiminy 1.0 Crickets",
                    // These three unacceptable because 0 or less
                    @"0.0" @"0", @"-2048",
                    // Last three are good
                    @"3.14159", @"1", @"10000000000.0"];
for( NSString * text in texts ){
    NSScanner * scanner = [NSScanner scannerWithString:text];
    double val;
    [scanner scanDouble:&val];
    // Scanned the whole string and ended up with a positive value
    if( [scanner isAtEnd] && val > 0 ){
        NSLog(@"'%@'? I accept.", text);
    }
    else {
        NSLog(@"'%@' is no good.", text);
    }
}

关于ios - 检查UITextField是否具有大于0的数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460638/

相关文章:

iphone - 可视化:最好的方法?

ios - iOS Storyboard 中 View 的底部条在 iPad 上不显示

ios - 与 NSDateComponents 的时差

objective-c - 如何捕捉 MPMoviePlayerController 旋转事件?

iphone - uiwebview方向字体大小问题

ios - uitextfield 动画宽度约束

ios - keyboardFrameEndUserInfoKey 没有显示正确的值?

swift - 带有计时器的文本字段 didChange

javascript - 在没有插件的情况下在移动设备上进行 Facebook 授权/操作的最佳实践

ios - 为什么我的 NSFetchedResultsController 加载所有行?