오디오 대기열 콜백 함수가 C 스타일 함수 여야합니까? 아니면 객관적인 C 스타일의 방법 일 수 있습니까?오디오 대기열 콜백 함수가 C 스타일 함수 여야합니까? 아니면 객관적인 C 스타일의 방법 일 수 있습니까?
4
A
답변
7
전적으로 API에 따라 다름. API가 함수, 블록 또는 메소드를 호출하는 경우 사용해야합니다.
만큼 콜백 함수 유형이 같은 것입니다 같이
void (*hollabackman)(AudioGunk*foo, void*context);
그리고 콜백을 설정하기위한 API가 뭔가 같은 : 다음
setCallback(hollabackman func, void *context);
을 수행 할 수 있습니다
- myMethod
{
setCallback(&myCallbackFunc, (void *)self);
}
- (void) hollaedBack: (AudioGunk*) aGunk
{
.....
}
다음 :
void myCallbackFunc(AudioGunk *foo, void *context)
{
MyClass *self = (MyClass *) context;
[self hollaedBack: foo];
}
콜백을 설정할 때 retain
자체를 제안하고 콜백을 무너 뜨릴 때 release
과 만 균형을 유지할 것을 제안합니다.
1
CoreAudio (AudioQueueServices 포함)에는 ObjectiveC 인터페이스가 없습니다. 순수한 C는 CoreAudio와 직접 인터페이스하기위한 대답입니다.
하지만 단발 ObjectiveC 개체 메서드를 호출하는 래핑 C 함수를 만들 수 있습니다.
+1 멋진 구조에 대한 +1 – Till
+1, 비슷한 회신 자신을 입력하는 동안주의 산만 해 : D 조 – Goz