模型中的预期标识符

时间:2011-11-26 19:18:58

标签: ios xcode

我的模型实现文件中出现两个错误,我已经注释掉了。你能解释一下是什么问题以及如何解决这个问题吗?

谢谢。


CalculatorBrain.m

#import "CalculatorBrain.h"

@interface CalculatorBrain()
@property (nonatomic, strong)NSMutableArray *operandStack; 

@end

@implementation CalculatorBrain

@synthesize operandStack = _operandStack;

- (NSMutableArray *)operandStack
{
     if (!_operandStack) {
    _operandStack = [[NSMutableArray alloc]init];
    }
    return _operandStack;
}

 - (void)setOperandStack:(NSMutableArray *)anArray
{
    _operandStack = anArray;
}

- (void)pushOperand:(double)operand
{
    [NSNumber *operandObject = [NSNumber numberWithDouble:operand]; // Expected     identifier
     [self.operandStack addObject:operandObject]; /* Use of undeclared identifier     'operandObject' */
}

- (double)popOperand
      {
         NSNumber *operandObject = [self.operandStack lastObject];
         return [operandObject doubleValue];
      }

 - (double)performOperation:(NSString *)operation
{
    double result = 0;

    if ([operation isEqualToString:@"+"]) {
        result = [self popOperand] + [self popOperand];
    } else if ([@"*" isEqualToString:operation]) {
        result = [self popOperand] * [self popOperand];
    } else if ([operation isEqualToString:"-"]) {
        double subtrahend = [self popOperand];
        result = [self popOperand] - subtrahend;
    } else if ([operation isEqualToString:@"/"]) {
        double divisor = [self popOperand];
        if (divisor) result = [self popOperand] / divisor;
    }

     [self pushOperand:result];

     return result;
}


@end

3 个答案:

答案 0 :(得分:2)

你有一个迷路[

[NSNumber *operandObject = [NSNumber numberWithDouble:operand]; 
^

答案 1 :(得分:1)

你有一个额外的'['这里:

[NSNumber *operandObject = [NSNumber numberWithDouble:operand];

应该是:

NSNumber *operandObject = [NSNumber numberWithDouble:operand];

答案 2 :(得分:0)

正如我之前的人已经注意到的那样,你还有一个额外的东西。另外,您使用@synthesize operandStack变量实现getter和setter的原因是什么?