我正在创建一个应用程序,用户将在两个textFields
中输入汽车的速度,按button
,应用程序将告诉您哪辆车更快。我知道为了做到这一点,你需要使用NSNumberFormatter
,但我是否将代码放在一个单独的方法中,当点击按钮时,它会比较数字并调用它?
答案 0 :(得分:1)
尝试:
NSDecimal *scannerValue = [NSDecimalNumber zero];
[[NSScanner scannerWithString:[textFieldInstance stringValue]] scanDecimal:scannerValue];
if ([scannerValue decimalValue] != [NSDecimalNumber zero]) { // got a number
} else { // not a number
}
可用方法记录here,其中包含类层次结构的链接。如果您需要进一步的帮助,请发表评论。
答案 1 :(得分:1)
首先,您应该将UITextField
s限制为仅十进制值。请参阅THIS了解相同内容。
然后你可以做以下事情:
-(IBAction)fasterCar:(id)sender {
int result = [self.txtField1.text intValue]; - [self.txtField1.text intValue];
if (result > 0)
NSLog(@"1st one is faster");
else if (result < 0)
NSLog(@"2nd one is faster);
else
NSLog(@"Both cars have equal speed");
}
可能看起来很老,效果很好。
答案 2 :(得分:0)
在下面的按钮操作方法中尝试这样: -
-(IBAction)calculateSpeed:(id)sender
{
NSDecimalNumber *first=[NSDecimalNumber decimalNumberWithString:self.txt.text];
NSDecimalNumber *second=[NSDecimalNumber decimalNumberWithString:self.txt2.text];
(second > first) ? NSLog(@"Mclaren is faster") : NSLog(@"BMW is faster");
}