-1

同じファイルでかなりの数の質問に出くわしましたが、他のエラーを一掃した後も、まだわからないことがあります。エラーは、{または}が多すぎる/少なすぎることだと思いますが、いくつかのバリエーションを試した後、行き詰まりました。

これについてもう一度目を向けていただければ幸いです...ありがとう!

すぐ下に問題のセクションが表示され、エラーは {else} に表示されています

- (IBAction)digitPressed:(UIButton *)sender
{
    NSString *digit = sender.currentTitle;
    if (self.userIsInTheMiddleOfEnteringANumber); {
      self.display.text = [self.display.text stringByAppendingString:digit];
    } else {
        self.display.text = digit;
        self.userIsInTheMiddleOfEnteringANumber = YES;
    }
}

完全なファイルが下に挿入されます

#import "CalculatorViewController.h"
#import "CalculatorBrain.h"

@interface CalculatorViewController ()
@property (nonatomic) BOOL userIsInTheMiddleOfEnteringANumber;
@property (nonatomic, strong) CalculatorBrain *brain;
@end

@implementation CalculatorViewController

@synthesize display = _display;
@synthesize userIsInTheMiddleOfEnteringANumber = _userIsInTheMiddleOfEnteringANumber;
@synthesize brain = _brain;

- (CalculatorBrain *)brain
{
    if (!_brain) _brain = [[CalculatorBrain alloc] init];
    return _brain;
}
- (IBAction)digitPressed:(UIButton *)sender
{
    NSString *digit = sender.currentTitle;
    if (self.userIsInTheMiddleOfEnteringANumber); {
      self.display.text = [self.display.text stringByAppendingString:digit];
    } else {
        self.display.text = digit;
        self.userIsInTheMiddleOfEnteringANumber = YES;
    }
}

- (IBAction)enterPressed
{
    [self.brain pushOperand:[self.display.text doubleValue]];
        self.userIsInTheMiddleOfEnteringANumber = NO;
}

- (IBAction)operationPressed:(UIButton *)sender
{
    if (self.userIsInTheMiddleOfEnteringANumber) [self enterPressed];
    double result = [self.brain performOperation:sender.currentTitle];

    NSString *resultString = [NSString stringWithFormat:@"%g", result];
    self.display.text = resultString;
}

@end
4

2 に答える 2

2

この行に余分なセミコロンがあります:

if (self.userIsInTheMiddleOfEnteringANumber); {
于 2012-08-11T00:43:25.620 に答える
1

「;」があるようです あなたのif文の後

if (self.userIsInTheMiddleOfEnteringANumber);
于 2012-08-11T00:45:16.097 に答える