您好! 的 在我的计算器程序中,不使用减法/乘法/除法方法,而是使用加法方法。
添加方法:
-(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'收集垃圾?
如果您需要更多代码,请告诉我。
答案 0 :(得分:0)
op
中的clickEquals
是什么?它应该是一个类ivar?如果是这样processOp
是错误的,因为它正在使用名为op
的局部变量,因此永远不会分配ivar。
你应该学会自己调试这类问题。这不是太难。如果您在调试器中逐行执行代码执行,并在应该能够找到此类问题时观察哪些更改。