답변:
프리미티브는 @()표현 을 사용하여 객체로 변환 할 수 있습니다 . 너무 짧은 방식으로 변환하는 것입니다 int에 NSNumber와 가진 문자열 표현을 데리러 stringValue방법 :
NSString *strValue = [@(myInt) stringValue];
또는
NSString *strValue = @(myInt).stringValue;
stringValue없지만 모두 있습니다 description. 따라서 사용에 익숙해지는 것이 좋습니다 description( NSNumber여기서 걱정할 필요 없음). 다음을 시도해보십시오 ( description날짜가 인쇄되지만 stringValue충돌합니다) :NSNumber *test = (id)[NSDate date]; NSLog(@"description: %@", test.description); NSLog(@"string value: %@", test.stringValue);
!) 를 사용하지 않고 주석을 Swift로 변환 하면 Objective-C에서 잘못하고 있음을 알 수 있습니다. 객체 test가 당신에 의해 생성되지 않았다면 그것은 당신의 책임이 아닙니다. isKindOfClass:수신 된 모든 매개 변수 를 호출하려고 시도 할 수 있지만 (예를 들어 NSObject 대신 구조체를 전달하여) 속일 수 있습니다. 그러니 그렇게하지 마세요 : 예상되는 유형을 명시 적으로 문서화하십시오.
(id)실수입니다, 그것은 IMO 있다는 점 데모 단지 있었다 description이상이 바람직하다 stringValue(내가 잘못 될 수 년 동안 ObjC에서 프로그래밍하지 않은 경우)
NSString *string = [NSString stringWithFormat:@"%d", theinteger];
이 문자열이 최종 사용자에게 표시되는 경우 NSNumberFormatter. 이렇게하면 수천 개의 구분 기호가 추가되고 사용자의 현지화 설정이 적용됩니다.
NSInteger n = 10000;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
NSString *string = [formatter stringFromNumber:@(n)];
예를 들어 미국에서는 문자열이 생성 10,000되지만 독일에서는 10.000.
NSString *strValue = @(myInt).stringValue;