-1
안녕하세요! 내 계산기 프로그램에서는 빼기/곱셈/나눗셈 방법을 사용하지 않고 일하는 방법을 사용합니다.뺄셈/곱셈/나눗셈을하지 마시고 추가 하시길 바랍니다.
첨가 방법 :
-(IBAction) clickPlus
{
[self processOp: '+'];
}
감산 방법
-(IBAction) clickMinus
{
[self processOp: '-'];
}
프로세스에있어서 "clickEquals"
: 그 방법 "OP"에-(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;
}
변수 사용
-(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'가 쓰레기를 수집한다고 생각하십니까?
더 많은 코드가 필요하면 알려주세요.
'op '가 인스턴스 변수 또는 속성이라고 가정하면 할당을하기 전에 opStr을 복사하기 때문에 가비지 값을 얻는 것처럼 보입니다. 나중에 'op'를 사용하면 결과는 무작위가됩니다. – dasblinkenlight
다양한 'clickMinus','clickMultiply' 및'clickDivide' (또는 그들이 호출되는 모든) 메소드에 중단 점 또는'NSLog' 문을 넣어 인터페이스 작성기에서 올바르게 연결되었는지 확인 했습니까? – Rob
그리고 그것이 작동하지 않는다고 말할 때, 그것은 아무것도하지 않습니까, 아니면 무언가를합니까? 단지 잘못된 것입니까? 후자라면 뭐하고 있니? 정확하게 어떤 행동을보고 있으며 어떤 행동을보고 싶습니까? – Rob