0

小数点ボタンを押したことが検出された場合に単純なコードをトリガーするように構築した電卓アプリを取得しようとしています(値ごとに小数点を1つだけ許可するため)。ただし、何らかの理由で、数字に関するこれらの if ステートメントはトリガーされていません。私はその出力を NSLogged しましたが、実際には「。」と表示されています。そのため、理由がよくわかりません。を変更しました。他の値に対しても、何もトリガーされないようです。

NSString *digit = [sender currentTitle];
if (self.userIsInTheMiddleOfEnteringANumber) {
    self.display.text = [[[self display] text] stringByAppendingString:digit]; // All in one line!
    NSLog(@"Digit is equal to %@",digit);
    if (digit == @".") NSLog(@"That was a decimal point!");
} else {
    self.display.text = digit;
    if (digit == @".") NSLog(@"You can't begin a number with a decimal!");
    self.userIsInTheMiddleOfEnteringANumber = YES; // If they aren't typing, now they are!
}
4

2 に答える 2

0

文字列を == と比較しないでください。使用isEqualToString:

if ([digit isEqualToString:@"."])

==文字列の等価性ではなく、ポインタの等価性をチェックします。

于 2012-02-13T14:45:33.617 に答える
0

== は機能しません:

if (digit == @".")

文字列を使用する場合:

if([digit isEqualToString:@".")
于 2012-02-13T14:47:19.670 に答える