Objective c 在Objective C中创建堆栈
我正在为iPhone开发一个RPN计算器,使用iOS5进行编程分配,我不知道如何在Objective-C中创建一个堆栈来将数字推送到上面。这一部分我需要一些帮助,因为应用程序的其余部分工作正常。最简单的方法是包装一个NSMutableArray并添加推送和弹出功能。@Non-melive建议正在进行中。您甚至不需要对其进行子类化,只需使用内置的addObject推送并组合lastObject(获取最后一个对象)和RemovelAsObject(将其从数组中移除)即可实现pop功能。请注意,要使用NSMutableArray,“数字”应实现为NSNumber,而不是使用原语int/floats/等。Objective c 在Objective C中创建堆栈,objective-c,ios5,stack,Objective C,Ios5,Stack,我正在为iPhone开发一个RPN计算器,使用iOS5进行编程分配,我不知道如何在Objective-C中创建一个堆栈来将数字推送到上面。这一部分我需要一些帮助,因为应用程序的其余部分工作正常。最简单的方法是包装一个NSMutableArray并添加推送和弹出功能。@Non-melive建议正在进行中。您甚至不需要对其进行子类化,只需使用内置的addObject推送并组合lastObject(获取最后一个对象)和RemovelAsObject(将其从数组中移除)即可实现pop功能。请注意,要使用
-(NSMutableArray *)operandStack // override the getter for lazy instantiation
{
if (!_operandStack)
{
[self setOperandStack:[[NSMutableArray alloc] init]];
}
return _operandStack;
}
-(void)pushOperand:(double)operand
{
NSNumber *operandObject = [NSNumber numberWithDouble:operand];
[[self operandStack] addObject:operandObject];
}
-(double)popOperand
{
NSNumber *operandObject = [[self operandStack] lastObject];
if (operandObject)
{
[[self operandStack] removeLastObject];
return [operandObject doubleValue];
}
else
{
return 0;
}
}