私は簡単な電卓アプリを書いています。ユーザーが入力した演算子を格納するスタックを実装したいと考えています。もともと、chars を使用したかったのですが、pop メソッドに removelastobject と last オブジェクトを使用し、push メソッドに addobject を使用しようとしたときに、いくつかの問題に遭遇しました。
代わりに、タイプとして 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;
}