我在閱讀「Programming in Objective-C」4th Ed。由Stephen G. Kochan提供。在本書中,有一個用於爲iPhone創建計算器應用程序的示例代碼。我理解代碼,至少有90%。 - 有一個分數類,它有方法來存儲分數對象,並描述如何執行不同的基本分數算術運算。 - 除此之外,還有一個計算器類,它從Fraction類運行適當的方法,這取決於用戶試圖總結,劃分等目標C:計算器應用程序 - currentNumber = currentNumber * 10 +數字;
視圖控制器具有當用戶按下界面中的號碼下面的方法:
-(IBAction)clickDigit:(UIButton *)sender {
int digit = sender.tag; //sender or the argument inthis case is the button
[self processDigit:digit];
}
正如你看到的這個方法現在被稱爲:
-(void) processDigit:(int)digit {
currentNumber = currentNumber * 10 + digit;
[displayString appendString:
[NSString stringWithFormat:@"%i", digit]];
display.text = displayString;
}
我唯一的問題(也許是最簡單的答案)是:爲什麼currentNumber總是乘以10?在編譯器進入上述方法時,currentNumber的值始終爲0(我使用XCode中的調試器對此進行了驗證),所以我不明白爲什麼我們甚至不得不將它乘以10.我沒有刪除該乘法並且結果不正確,我只是不明白爲什麼呢。
謝謝
不錯!我現在明白了。非常感謝。我的腦子在想,這些方法只會被分子調用一次,而分母只會被調用一次。我沒有考慮使用整數而不是字符串的限制,並且忘記了這樣一個事實,即實際上每個被按下的數字都會調用這些方法,而不是一次用於分母和一次用於每個操作數的分子。 – AlexUseche