不要进行减法/乘法/除法,但要加工

时间:2012-08-07 15:13:13

标签: objective-c ios xcode ios5 ios-simulator

您好! 的 在我的计算器程序中,不使用减法/乘法/除法方法,而是使用加法方法。

添加方法:

-(IBAction) clickPlus
{
    [self processOp: '+'];
}

减法方法:

-(IBAction) clickMinus
{
    [self processOp: '-'];
}

处理方法:

-(void) processOp: (char) theOp
{
    NSString *opStr;

    op = theOp;

    switch (theOp) {
        case '+':
            opStr = @" + ";
            break;
        case '-':
            opStr = @" – ";
            break;
        case '*':
            opStr = @" * ";
            break;
        case '/':
            opStr = @" ÷ ";
            break;
    }

    [self storeFracPart];
    firstOperand = NO;
    isNumerator = YES;

    [displayString appendString: opStr];
    display.text = displayString;
}

在该方法中,使用'op'变量:“ clickEquals

-(IBAction) clickEquals
{
    if ( firstOperand == NO )
    {
        [self storeFracPart];
        [myCalculator performOperation: op];

        [displayString appendString: @" = "];
        [displayString appendString: [myCalculator.accumulator
                                      convertToString]];
        display.text = displayString;

        currentNumber = 0;
        isNumerator = YES;
        firstOperand = YES;
        [displayString setString: @""];
    }
}

为什么你认为'op'收集垃圾?

如果您需要更多代码,请告诉我。

1 个答案:

答案 0 :(得分:0)

op中的clickEquals是什么?它应该是一个类ivar?如果是这样processOp是错误的,因为它正在使用名为op的局部变量,因此永远不会分配ivar。

你应该学会自己调试这类问题。这不是太难。如果您在调试器中逐行执行代码执行,并在应该能够找到此类问题时观察哪些更改。