0
unsigned char _MyString[] = {0xda, 0xe5, 0x18, ..., 0x00};
CFArrayRef array = CFArrayCreate(NULL,
(const void**) CFStringCreateWithBytes(NULL,
_MyString,
sizeof(_MyString),
kCFStringEncodingASCII,
FALSE),
1,
&kCFTypeArrayCallBacks);
CFShow(arr); // <-- EXEC_BAD_ACCESS ERROR
디버거는 그것의 실패 표시 CFCreateArray로 작성된CFArray 액세스 할 때 충돌
CoreFoundation`CFGetTypeID :
__NSCFString
디버거에서
출력 (lldb)
메모리 오류가 어디 있는지 확실하지 않지만 CFArrayCreate()에 문자열이 전달되어야합니다.
그리고 해결책은 CFString을 다른 변수에 저장 한 다음 그 변수에 포인터를 전달하는 것입니다. 왜냐하면 CFArrayCreate가'numValues' 객체를 포함하는 저장소에 대한 포인터를 원하기 때문에 하나의 객체 배열을 만들 때 일반 변수는 하나의 객체를 포함하는 저장소로 계산됩니다. –