development

NSString과 함께 printf를 사용하는 방법

big-blog 2020. 12. 8. 18:55
반응형

NSString과 함께 printf를 사용하는 방법


NSLog타임 스탬프와 개행 문자없이 같은 것을 사용해야 하므로 printf. 이것을 어떻게 사용할 수 NSString있습니까?


당신은 변환 할 수 있습니다 NSString으로 UTF8호출하여 문자열 UTF8String방법 :

printf("%s", [string UTF8String]);

//public method that accepts a string argument

- (void) sayThis : ( NSString* )  this 
{

    printf("%s",[this cString]);    
}

NSString.h (html 버전)에 따르면 UTF8String 메서드는 Mac OSX에서만 사용할 수 있습니다.

(아래 참조) 내가 본 다른 모든 방법은 'availability : Openstep'으로 표시됩니다.

일반 char * 문자열을 반환하는 추가 메서드가 있지만 문자 변환 예외가 발생할 수 있습니다.

참고 문자열 포인터는 사라질 수있는 메모리를 가리 키므로 문자열 내용의 복사본을 유지하려면 문자열을 복사해야하지만 즉시 인쇄해도 괜찮습니까?

인코딩 된 문자열을 반환하는 메서드와 원하는 인코딩이 작동하는지 테스트하는 메서드도 있습니다 (내 생각에). 필요한 인코딩이 작동하는지 확인한 다음 필요에 따라 인코딩 된 문자열을 요청할 수 있습니다.

.h 파일 자체를 읽는 것부터 인코딩 사이에 많은 인코딩과 변환이 있습니다. 이들은 열거를 사용하여 관리되므로 원하는 인코딩 유형을 인수로 전달할 수 있습니다.

Linux 등에서는 다음을 수행하십시오.

NSString.h를 찾습니다 ** 이것은 또한 html doc 파일을 발견했습니다

그렇지 않으면 다음을 수행하십시오.

/ usr -name NSString.h 찾기

참고 귀하의 마일리지는 다를 수 있습니다. :)

감사.

NSString.h html 문서 파일에서 :

cString-(const char *) cString; 가용성 : OpenStep

기본 인코딩에서 8 비트 문자의 널로 끝나는 문자열에 대한 포인터를 리턴합니다. 가리키는 메모리는 호출자가 소유하지 않으므로 호출자는 해당 내용을 복사하여 보관해야합니다. 변환 중에 정보 손실이 발생하면 NSCharacterConversionException을 발생시킵니다. (-canBeConvertedToEncoding :을 참조하십시오.)

cStringLength-(NSUInteger) cStringLength; 가용성 : OpenStep

기본 C 문자열 인코딩을 사용하여 바이트로 변환 된이 유니 코드 문자열 버전의 길이를 반환합니다. 변환으로 인해 정보 손실이 발생하면 결과를 예측할 수 없습니다. -canBeConvertedToEncoding : 먼저 확인하십시오.

cStringUsingEncoding :-(const char *) cStringUsingEncoding : (NSStringEncoding) encoding; 가용성 : MacOS-X 10.4.0, Base 1.2.0

지정된 인코딩에서 null로 끝나는 문자열에 대한 포인터를 반환합니다. NB. GNUstep에서 이것을 사용하여 nul로 끝나는 utf-16 문자열 (16 비트 문자)과 8 비트 문자열을 얻을 수 있습니다. 가리키는 메모리는 호출자가 소유하지 않으므로 호출자는 해당 내용을 복사하여 보관해야합니다. 변환 중에 정보 손실이 발생하면 NSCharacterConversionException을 발생시킵니다.

canBeConvertedToEncoding :-(BOOL) canBeConvertedToEncoding : (NSStringEncoding) encoding; 가용성 : OpenStep

이 문자열을 정보 손실없이 지정된 문자열 인코딩으로 변환 할 수 있는지 여부를 반환합니다.

참고 URL : https://stackoverflow.com/questions/3796106/how-to-use-printf-with-nsstring

반응형