저는 목표가 C가 처음입니다.NSString 대 C 문자열
이 코드가 제대로 작동하지 않는 이유를 알고 싶습니다. 아이디어는 NSString의 내용을 Cstring으로 복사하는 함수를 만드는 것입니다.
나는, 즉 않은 setattr에게 메시지를 보내 : [자기 않은 setattr을 : @ "뭔가"]
- (BOOL) setAttr:(NSString *) src{
const char *dst;
[ self NSString2CString: src dst: dst ];
printf("%s",dst); // <-- gives me junk
return YES;
}
- (BOOL) NSString2CString: (NSString *) src dst: (const char *) dst {
const char * __src= [src UTF8String];
if ((dst=(const char *) malloc(strlen(__src)+ 1)) == NULL) return NO;
strcpy(dst, __src);
return YES;
}
덕분에 당신은합니다 (address-of operator 사용하여 cstring
의 주소를 전달해야
afcc : 내가받는 C 문자열이 임시 객체에 의해 소유되어 있으며 자동 할당 해제가 발생할 때 유효하지 않으므로 getString과 같은 NSString 메서드를 사용하지 않습니다. 그래서 나는 그것을 복사하고있다. – jhon
"수신기의 콘텐츠를 지정된 인코딩으로 변환하고 버퍼에 저장합니다." * 당신은 * 버퍼를 제공하므로 얼마나 오래 살 수 있습니까? – Wevah