:메모리 관리 :있는 NSString의 stringWithCString : 인코딩 :
char * mystring = SomeCFunction(...);
을 그리고 난이 문자열을 소유 (내가 끝났어요 때 그것을 해제를 담당 해요).
NSString * mynsstring = [NSString stringWithCString:mystring
encoding:NSUTF8StringEncoding];
나는 여전히 원래 C 문자열을 자유롭게에 대한 책임이 : 경우
는 목표 - C에서, 나는NSString *
사용 만들?
저는 대답이 '예'라고 가정하고 있지만 문서에서 명확한 답을 찾을 수 없습니다. 반대 방법 (cStringUsingEncoding
)의 기능은 현명한 것이지만 잠시 멈출 수는 있습니다. 당신을 위해 cString을 해방하십시오.
대답이 '예'인 경우 NSString *
을 사용하기 전에 C 문자열을 비우지 않아야합니까? 아니면 함수가 나를 위해 문자열을 복사합니까? stringWithCString
에 대한 설명서가 말한다 때문에이 물어 :
은 주어진 C 배열의 바이트를 포함하는 문자열을 반환, 주어진 인코딩에 따라 을 해석했다.
실제로 바이트를 복사했는지, 아니면 그냥 내부적으로 가리키고 있는지 궁금해하고 있습니다. (기본적으로 그냥 캐스트하고 있습니다).
아! 넌 최고야. 고맙습니다! 수락 차단 타이머가 6 분 남았을 때 대답을 수락합니다. – Steve
이 문서에 나와 있어야합니다 –
@ AndréFratelli 의견을 제출하십시오 (온라인 문서의 각 페이지 하단에 링크가 있습니다). 그래서 Apple이 여기에 추가합니다 .-) – AliSoftware