我正在编写一个简单的计算器应用程序。我想实现一个堆栈来存储用户输入的运算符。最初,我想使用 chars,但是当我尝试将 removelastobject 和 last 对象用于我的 pop 方法并使用 addobject 用于我的 push 方法时遇到了一些问题。
相反,我使用 id 作为类型。这是错误的还是有更好的方法来解决这个问题?
在我的 .h 中:
//Brain.h
-(void)pushOperator:(id)op;
在我的 .m 中:
//Brain.m
#import Brain.h
@interface CalculatorBrain()
@property (nonatomic,strong) NSMutableArray *operandStack;
@property (nonatomic,strong) NSMutableArray *operatorStack;//This is the one I'm asking about
@end
@implementation CalculatorBrain
@synthesize operatorStack = _operatorStack;
- (NSMutableArray *) operatorStack
{
if (! _operatorStack)
{
_operatorStack = [[NSMutableArray alloc] init];
}
return _operatorStack;
}
-(void)pushOperator:(id)op
{
[self.operatorStack addObject:op];
}
-(id)popOperator
{
NSObject *op = [self.operatorStack lastObject];
if (op)
{
[self.operatorStack removeLastObject];
}
return op;
}