2014-03-02 2 views
0

동등한 버튼을 누르는 대신 입력하는 동안 답변을 출력하는 계산기 앱을 사용 중입니다. 지금까지 계산 된 숫자에 (또는 -, /, *)를 추가하지 않으면 모든 것이 올바르게 작동합니다. 예를 들어, 10 + 15 + 9를하면 정답 대신 (34) 169가됩니다. 나는 왜 이런 일이 일어나는 지 알 것 같지만, 어떻게 고칠 지 잘 모르겠습니다. 난 당신이 그냥 saved2의 말에 9를 추가하는 두 번째 시간 더하기를 쳤을 때 문제가 생각대답이 동적으로 응답하는 계산기의 문제

 if (answer == NO) { 

    saved1 = saved1 * 10 + digit; 

    if ([self.screen.text isEqual: @"0"] || operationClear == YES) { 

     self.screen.text = number; 

     operationClear = NO; 

    }else{ 


     self.screen.text = [NSString stringWithFormat:@"%@%@", self.screen.text, number]; 

    } 


}else{ 

    saved2 = saved2 * 10 + digit; 

    if (plus == YES) { 

     answerr = saved1 + saved2; 

     //saved1 = answerr; 

     // saved2 = 0; 

     NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init]; 

     [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 

     self.screen.text = [formatter stringFromNumber:[NSNumber numberWithDouble:answerr]]; 



    }   
    } 
} 

:

여기 내 코드입니다. 이 문제를 해결하기 위해 saved1과 같은 대답을 시도하고 saved2을 0으로 만들었습니다. 아이디어가 있으십니까? 내가이 일을 몹시 잘못하는 경우, iOS 개발을 처음 접했고 가능한 가장 효율적인 방법을 원합니다. 감사합니다. .

답변

1

그래서 코드에서 사용자가 새로운 자릿수를 누른 후 숫자를 표시하기 위해 수학을 사용하고있는 것처럼 보입니다. 예를 들어

는 '1'이 표시되면 사용자는 예를 들어 문자열을 처리하는 것이 작업을 수행하는 1 * 10 + 2

아마도 더 나은 방법을 수행하여, 당신이 '12'를 얻을 수 2 누르면 '1'로 표시되는 경우, 사용자는 숫자 예컨대

를 입력 할 때 사용자 프레스 '2'에서 '2'문자열을 상기 '1'이 문자열에 추가

NSString * displayString = calculatorDisplay.text; // display 
NSString * userInputString = @"2"; 

calculatorDisplay.text = [displayString stringByAppendingString:userInputString]; 

숫자가 필요할 때 다음 번호를 사용하여 숫자로 변환하십시오 :

- (NSNumber *)numberFromString:(NSString *)string { 
    NSNumberFormatter * f = [[NSNumberFormatter alloc] init]; 
    [f setNumberStyle:NSNumberFormatterDecimalStyle]; 
    return [f numberFromString:string]; 
} 

이 내용이 조금 바뀌었지만 더 일관성이 있다고 생각합니다. 또한 사용자가 십진수 같은 것을 쉽게 입력 할 수 있습니다.

+0

나는 원래 그것을 실제로 좋아하지 만, 나는 내가 지금하고있는 방식대로해야한다는 수많은 사람들이 있다고 들었다. 나는 무엇을 끝내려고하는지 확신하지 못한다. 감사. – user3186310

+0

흠, 어떤 이유? 십진법은 어떻게 처리합니까? – Logan

+0

나는 실제로 그것에 아직 가지 않았다, 나는 아마 당신의 길로 갈 것이라고 생각한다, 그것은 물건을 훨씬 더 단순하게 만들 것 같다. 어떻게하면 실제 수학을 이렇게 할 수 있을까요? – user3186310