我正在尝试在计算器上设置加号/减号按钮,这个想法基本上是显示的数字应该乘以-1,除非它等于0.
我以为我会这样做;
如果大于0,则加上“ - ”符号,
如果小于0,则删除字符串中的第一个字符(即“ - ”),
如果等于0,则保持这种状态。
这就是我开始的方式
- (IBAction)plusminusPressed:(id)sender
{
NSString *minusString = [NSString stringWithFormat:@"-"];
NSString *mainLabelString = mainLabel.text;
if (mainLabelString > 0)
mainLabel.text = [minusString stringByAppendingFormat:mainLabelString];
}
虽然它适用于大于0的数字,但它只是在0之前加上一个减号而在0之前加上数字 我怎样才能使用其他两种可能性,我尝试添加
else if ([mainLabelString isEqualToString:@"0"])
mainLabel.text = [mainLabelString];
但是它需要一个标识符。我应该怎么做其他两种可能性,我甚至做了第一个可以吗? 你会用其他方式吗?
答案 0 :(得分:2)
您收到错误的原因是因为您尝试将NSString与数字0进行比较:
if (mainLabelString > 0)
这不是它在Obj-C中的运作方式。你必须将“mainLabelString”的值与0相比较
[mainLabelString intValue] > 0
或
[mainLabelString doubleValue] > 0
或
[mainLabelString floatValue] > 0
通过Standford Univ查看iTunes Univ上的iOS教程 - 开发适用于iOS的应用程序。它有一章关于构建一个简单的计算器。
答案 1 :(得分:2)
我在计算器上尝试了这个。我想和你分享我的答案。
- (IBAction)plusminusPressed{
if ([TextInput.text isEqualToString:@"0"]) {
return;
}else{
NSString * negative = @"-";
if(!changingSign){
changingSign = YES;
TextInput.text= [negative stringByAppendingString:TextInput.text];
}else{
changingSign = NO;
TextInput.text = [TextInput.text substringFromIndex:1];
}
}
}
希望这会有所帮助..
答案 2 :(得分:1)
您不应该直接操作字符串,而是在后台使用NSNumber并在每次更改NSNumber时更新标签。
答案 3 :(得分:1)
你为什么要这么复杂。
您需要使用float或int变量来执行此操作。
声明一个如下的整数:
int result;
并将值存储在结果变量中。
您需要将结果添加到标签中:
mainLabel.text = [NSString stringByAppendingFormat:@"%d",result];
也不需要那种情况。