Program Club

Objective C에서 int를 문자열로 변환하는 방법 : 예제 코드

proclub 2020. 10. 27. 23:43
반응형

Objective C에서 int를 문자열로 변환하는 방법 : 예제 코드


int에서 문자열로 변환하려고하는데 문제가 있습니다. 디버거를 통해 실행을 수행했고 'myT'문자열은 'sum'의 값을 얻지 만 'sum'이 10,11,12이면 'if'문이 올바르게 작동하지 않습니다. 숫자를 저장하기 위해 기본 int 유형을 사용하지 않아야합니까? 또한 내가 시도한 두 가지 방법 (주석 처리 된 코드 참조)은 'if'문의 실제 경로를 따르지 않습니다. 감사!

int x = [my1 intValue]; 
    int y = [my2 intValue]; 
    int sum = x+y;
    //myT = [NSString stringWithFormat:@"%d", sum];
    myT = [[NSNumber numberWithInt:sum] stringValue];

    if(myT==@"10" || myT==@"11" || myT==@"12")
        action = @"numGreaterThanNine";

주석 처리 된 버전이 더 정확한 방법입니다.

==문자열에 연산자 를 사용하는 경우 문자열의 값이 아닌 문자열의 주소 (메모리에 할당 된 위치)를 비교하는 것입니다. 이것은 매우 가끔 유용하지만 (정확히 동일한 문자열 객체를 가지고 있음을 나타냄) 99 %의 시간 동안 값을 비교하려고합니다.

if([myT isEqualToString:@"10"] || [myT isEqualToString:@"11"] || [myT isEqualToString:@"12"])

제안한대로 문자열에 int가 필요한 경우 가장 쉬운 방법은 다음과 같이하는 것입니다.

[NSString stringWithFormat:@"%d",numberYouAreTryingToConvert]

리터럴을 사용할 수 있습니다. 더 간결합니다.

NSString* myString = [@(17) stringValue];

(박스는 NSNumber 로 사용되며 stringValue 메서드를 사용합니다 )


==에서 개체를 비교하는 데 사용해서는 안됩니다 if. 들어 NSString사용 isEqualToString:을 비교합니다.


int val1 = [textBox1.text integerValue];
int val2 = [textBox2.text integerValue];

int resultValue = val1 * val2;

textBox3.text = [NSString stringWithFormat: @"%d", resultValue];

간단히 변환 intNSString사용 :

  int x=10;

  NSString *strX=[NSString stringWithFormat:@"%d",x];

참고 URL : https://stackoverflow.com/questions/1104815/how-to-convert-from-int-to-string-in-objective-c-example-code

반응형