2012-11-29 56 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]; 
     } 
    } 

} 

希望這有助於..