Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在Objective C中创建堆栈_Objective C_Ios5_Stack - Fatal编程技术网

Objective c 在Objective C中创建堆栈

Objective c 在Objective C中创建堆栈,objective-c,ios5,stack,Objective C,Ios5,Stack,我正在为iPhone开发一个RPN计算器,使用iOS5进行编程分配,我不知道如何在Objective-C中创建一个堆栈来将数字推送到上面。这一部分我需要一些帮助,因为应用程序的其余部分工作正常。最简单的方法是包装一个NSMutableArray并添加推送和弹出功能。@Non-melive建议正在进行中。您甚至不需要对其进行子类化,只需使用内置的addObject推送并组合lastObject(获取最后一个对象)和RemovelAsObject(将其从数组中移除)即可实现pop功能。请注意,要使用

我正在为iPhone开发一个RPN计算器,使用iOS5进行编程分配,我不知道如何在Objective-C中创建一个堆栈来将数字推送到上面。这一部分我需要一些帮助,因为应用程序的其余部分工作正常。

最简单的方法是包装一个NSMutableArray并添加推送和弹出功能。@Non-melive建议正在进行中。您甚至不需要对其进行子类化,只需使用内置的addObject推送并组合lastObject(获取最后一个对象)和RemovelAsObject(将其从数组中移除)即可实现pop功能。请注意,要使用NSMutableArray,“数字”应实现为NSNumber,而不是使用原语int/floats/等。
-(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;
    }
}