シンプルな電卓iPhoneアプリを開発しています。あくまでも練習目的です。ユーザーが入力した数字を格納する IBAction メソッドがあります。全体の概念は、電卓アプリが保留中の操作を積み上げて、ユーザーが複数のアクションを実行できるようにすることであり、画面には次のように結果が表示されます: 1 + 2 - 4 + 10 = X.オペレーターのアクション。ユーザーが演算子ボタンをクリックすると、新しい番号に対して新しい配列要素が作成されます。ユーザーが数字を入力すると、オペレーター ボタンが押されるまで、最後の配列要素が更新されます。
問題は、すべての配列要素がゼロであることです。メソッド内では、設定時に正しい値が保存されますが、メソッドが実行されて再度呼び出されると、入力された数値の代わりにゼロだけが続きます。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];
}
何が悪いのかわかりません。助言がありますか?前もって感謝します
UPDATE : ボタンを押すたびに clickClear メソッドが自動的に呼び出されることがわかりました。値ゼロを設定します。コメント セクションのこの投稿の下に、完全なソース コードをリンクしました。唯一の問題は、このメソッドが呼び出された理由です。このメソッドは何と呼ばれますか?
UPDATE2 : The Saad の助けを借りて、この問題を解決することができました。みんなありがとう!:)