나는 IMessage 인 arg1을 가지고있다.__CFString이란 무엇입니까?
struct IMessage {
...
struct CFString _field2;
...
};
및 CFString는 다음과 같이 정의된다 : iMessage를 다음과 같이 정의된다
struct CFString {
void **_vptr$CFObject;
struct __CFString *mCFRef;
_Bool mIsMutable;
};
및 __CFString는 다음과 같이 정의된다 :
struct __CFString;
내 목표는 그것을 할 어떤 종류의 문자열을 얻을 수 있습니다 NSString 또는 CFStringRef arg1에서, 그래서 어떻게 할 수 있습니까? 감사합니다. . 내가 mCFRef nslog하려고 할 때 다음
은 내가 오류입니다 : 당신은 이미 무언가를 가지고 있으므로,Thread 0 crashed:
# 1 0x97b41edb in _objc_msgSend + 0x0000001B (libobjc.A.dylib + 0x00005edb)
# 2 0x9610b5f2 in __CFStringAppendFormatAndArgumentsAux + 0x00000C42 (CoreFoundation + 0x0002c5f2)
# 3 0x9610a979 in __CFStringCreateWithFormatAndArgumentsAux + 0x00000069 (CoreFoundation + 0x0002b979)
# 4 0x961b3a3e in __CFLogvEx + 0x0000008E (CoreFoundation + 0x000d4a3e)
# 5 0x9415387c in _NSLogv + 0x0000008F (Foundation + 0x0009487c)
# 6 0x941537eb in _NSLog + 0x0000001B (Foundation + 0x000947eb)
해당 구조에서 'mCFRef'선언을 변경해야합니다. 그것은'CFStringRef mCFRef;'이어야합니다. 다른 모든'BlahBlahRef' 타입과 마찬가지로'CFStringRef' 타입은 포인터가 당신에게 열려있는 구조체에 대한 포인터가 아니라 불투명하다는 것을 강조하기 위해 존재합니다. –
나는 그랬지만 여전히 EXC BAD ACCESS 오류가 발생했습니다. 오류에 대한 원래 질문을 확인하십시오. 감사! – user635064
아마도 기본 CFStringRef가 void 포인터일까요? 나는 무효화 점을 역 참조하여 CFStringRef로 캐스팅했지만 여전히 운이 없다. – user635064