我開發了一個簡單的計算器iPhone應用程序。只是爲了練習的目的。我有一個IBAction方法來存儲用戶輸入的數字。整個概念是,計算器應用程序堆積等待審查,所以用戶可以執行多個操作,屏幕以下列方式顯示結果:1 + 2 - 4 + 10 = X.所以我有兩個NSMutableArray存儲NSNumber數字和操作員操作。當用戶點擊一個操作符按鈕時,爲新的編號創建一個新的數組元素。當用戶輸入數字時,最後一個數組元素會自行更新,直到按下操作員按鈕。NSNumber存儲零值而不是正確的數值
問題是每個數組元素都是零。在方法內部,當我設置它時,它存儲corrent值,但是當方法被執行並再次調用時,它只包含零而不是輸入的數字。該NSNumber的對象都存在,該數組包含每一個數字,但每一個數字是0。
這裏是方法:
// Processing digit buttons
- (IBAction)clickDigit: (UIButton *) sender {
double currentNumber = [[numbers lastObject] doubleValue];
// Get the digit
double digit = sender.tag;
// Do nothing when the currentNumber and the digit both zero
if(currentNumber == 0 && digit == 0) {
return;
}
// When currentNumber is zero, override the value
if(currentNumber == 0) {
currentNumber = digit;
[numbers removeLastObject];
[numbers addObject: [NSNumber numberWithDouble: currentNumber ]];
// Else, add the digit to currentNumber
} else {
currentNumber = currentNumber * 10 + digit;
[numbers removeLastObject];
[numbers addObject: [NSNumber numberWithDouble: currentNumber ]];
}
// Update the screen
[self updateDisplay];
}
我不知道什麼是錯的。有什麼建議麼? 在此先感謝
更新:事實證明,每次按下按鈕後自動調用clickClear方法。它將值設置爲零。我在評論部分鏈接了這篇文章下面的完整源代碼。唯一的問題是:爲什麼要調用這個方法?什麼叫這個方法?
UPDATE2:與薩阿德的幫助我設法解決這個問題。謝謝大家! :)
你在哪裏創建'數字'?有沒有其他代碼可以訪問(特別是修改)'數字'?如果是這樣,請發佈。 –
我在默認的ViewController中創建了它,並在viewDidLoad方法中設置了它的默認值。沒有其他方法可以修改數字。這裏是完整的接口和實現代碼。請注意,目前尚不完善。 –
http://pastebin.com/tprwsd14和http://pastebin.com/yb5YtAhE –