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:
的第一行设置一个断点并单步执行。我更新了我的问题。请检查一下。