0

我试图在计算器上制作一个加号/减号按钮,这个想法基本上是显示的数字应该乘以-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];  

但随后它需要一个标识符。对于其他两种可能性,我该怎么办,我什至都做了第一种吗?
你会改用其他方式吗?

4

3 回答 3

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 开发应用程序。它有一章是关于构建一个简单的计算器。

于 2012-11-29T11:20:52.960 回答
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];
        }
    }

}

希望这可以帮助..

于 2012-12-04T15:22:17.477 回答
1

你为什么把它弄得这么复杂。

您需要使用 float 或 int 变量来执行此操作。

声明一个整数,如:

int result;

并将值存储在结果变量中。

您需要将结果添加到标签,例如:

mainLabel.text = [NSString stringByAppendingFormat:@"%d",result];

也不需要那个条件。

于 2012-11-29T11:16:06.217 回答