Objective-C 클래스를 작성하고 있지만 C로 작성된 API를 사용합니다. Objective-C 호출로 C 호출을 혼합하면 거의 문제가 없으므로 대부분 잘됩니다.Objective-C 클래스의 C 함수 섞기
static void MyCFHostClientCallBack(CFHostRef host, CFHostInfoType typeInfo, const CFStreamError *error, void *info);
- 수/어떻게 수행
MyCFHostClientCallBack
는 다음과 같이 정의 된 C 함수이다success = CFHostSetClient(host, MyCFHostClientCallBack, &context);
그러나
API 호출 중 하나
은 콜백 방법 (예)가 필요합니다 이 대신에 Objective-C 방법을 호출 하시겠습니까? - Objective-C 호출과 함께 C 함수를 혼합 할 수 있습니까?
- C 함수를 Objective-C 메서드와 어떻게 섞을 수 있습니까?
C 함수는'@ implementation'의 외부에있을 필요는 없습니다. –
@Bavarious : 컴파일러는'@ implementation' 내부의 함수를 없앨 수는 있지만 함수는 클래스에 속할 수 없으므로 여전히'@ implementation'의 일부가 아닙니다. 스타일의 문제로, 나는 그것을 @ 구현의 외부에두고, 다른 사람들에게도 똑같이하도록 권하고있다. –
실제로 @implementation 블록의 C 함수는 개인 및 보호 된 ivars에 직접 액세스 할 수있는 고유 한 특성을 가지고 있습니다. 따라서 내 자신의 경험으로 볼 때, 해당 구현 내부의 클래스에 속한 C 함수를 배치하는 것은 강력한 관용구가되었습니다. 답변을 업데이트하는 것이 좋습니다. –