我的模型实现文件中出现两个错误,我已经注释掉了。你能解释一下是什么问题以及如何解决这个问题吗?
谢谢。
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
答案 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的原因是什么?