在计算器上制作加号/减号按钮的方法

时间:2012-11-29 10:55:18

标签: objective-c ios xcode calculator

我正在尝试在计算器上设置加号/减号按钮,这个想法基本上是显示的数字应该乘以-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 个答案:

答案 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)

  • 你应该学习Objective-C。
  • 你应该了解类型。
  • 您不应该将字符串与整数进行比较。
  
    

您不应该直接操作字符串,而是在后台使用NSNumber并在每次更改NSNumber时更新标签。

  

答案 3 :(得分:1)

你为什么要这么复杂。

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

声明一个如下的整数:

int result;

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

您需要将结果添加到标签中:

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

也不需要那种情况。