2012-11-29 54 views
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]; 

但它然后它期望一个标识符。我应该如何处理其他两种可能性,我甚至会做第一个可能性吗?
你会以其他方式改变它吗?

回答

2

你得到的错误,因为你正在尝试一个NSString与数值0比较的原因:

if (mainLabelString > 0) 

这不是它是如何工作的OBJ-C。你必须 “mainLabelString” 的值与0比较喜欢

[mainLabelString intValue] > 0 

[mainLabelString doubleValue] > 0 

[mainLabelString floatValue] > 0 

结帐iTunes上大学了iOS教程由斯坦福大学 - 发展中的应用iOS版。它有一章关于建立一个简单的计算器。

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

你不应该直接操作字符串,但在后台与NSNumber的工作,并在NSNumber的每一个变化更新的标签。

1

你为什么如此复杂。

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

声明像的整数:

int result; 

并存储在结果变量的值。

您需要添加的结果标注,如:

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

不需要这个条件太。

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]; 
     } 
    } 

} 

希望这有助于..