Objective c Don';不是做减法/乘/除,而是做加法

Objective c Don';不是做减法/乘/除,而是做加法,objective-c,ios,xcode,ios5,ios-simulator,Objective C,Ios,Xcode,Ios5,Ios Simulator,你好 在我的计算器程序中,不使用减法/乘法/除法,而是使用加法 添加方法: -(IBAction) clickPlus { [self processOp: '+']; } -(IBAction) clickMinus { [self processOp: '-']; } 减法: -(IBAction) clickPlus { [self processOp: '+']; } -(IBAction) clickMinus { [self processOp:

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

添加方法:

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

-(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”变量:“单击等于”

你为什么认为“op”会收集垃圾


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

clickEquals
中什么是
op
?应该是ivar级吗?如果是这样,
processOp
是错误的,因为它使用了一个名为
op
的局部变量,因此从不分配ivar


你应该学会自己调试这类问题。这不太难。如果您在调试器中逐行检查代码执行,并观察当您应该能够发现此类问题时会发生什么变化。

假设
op
是一个实例变量或属性,它看起来将获得垃圾值,因为您在进行任何赋值之前将
opStr
复制到它中。如果您以后使用
op
,结果将是随机的。您是否在各种
单击减号
单击乘法
、和
单击除法
(或其他名称)中设置了断点或
NSLog
语句方法来确保它们在interface builder中正确连接?当你说它不工作时,它是什么也不做,还是做了什么,但只是做错了?如果是后者,它在做什么?确切地说,您正在看到什么行为以及希望看到什么行为?请在调试器中运行它。在
processOp:
的第一行设置一个断点并单步执行。我更新了我的问题。请检查一下。