2012-10-16 7 views
5

다음은 NSString을 NSString으로 변환하려고했지만 프로그램에서 "프로그램 수신 신호 : SIGABRT"를 반환하는 코드입니다.Objective-C NSString을 NSString으로 변환

NSString *string= [NSString stringWithUTF8String:[data bytes]]; 

또는

NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

그것을 할 다른 더 좋은 방법이 있나요?

+0

은'data' 변수 전무인가? –

+4

그리고 nil이 아니라면 실제로 UTF-8 인코딩으로 된 문자열의 바이트를 포함합니까? NSData 객체는 어떻게 생성 되었습니까? – rmaddy

+1

@rmaddy 그렇게하면 결과가 정의되지 않은 문자열 결과 (거의 확실하게 nil return)가되지만 그 행에는 SIGABRT가 나오지 않습니다. –

답변

7

Here's a highly up-voted answer 어떻게하는지 보여줍니다. 간단히 말해서하십시오 때문에 [data bytes]을 보내는 실패처럼

NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

첫 번째 아이디어는 보인다. stringWithUTF8String은 void *로 준비되지 않았습니다. 두 번째 아이디어는 아무 것도 입력하지 않아도 작동해야하는 것처럼 보입니다.

0

스위프트 - 3

enter image description here

하자 문자열 = data.base64EncodedString는()

+0

"ooh, in quick ..."의견을 말씀 드리면 OP의 실제 질문을 읽어보십시오. – eric

관련 문제