我必须在这里发布OpenAL上下文吗?

时间:2011-07-06 20:36:09

标签: objective-c c ios memory-management openal

设置OpenAL时,Leaks Instruments告诉我,我在这里泄漏了alContext:

alDevice = alcOpenDevice(NULL);
if (!alDevice) {
    return NO;
}

alContext = alcCreateContext(alDevice, 0); // leaking!
if (!alContext) {
    return NO;
}

BOOL success = alcMakeContextCurrent(alContext);
if (!success) {
    return NO;
}

return YES;

我应该在何处以及如何发布alContext?

1 个答案:

答案 0 :(得分:1)

以下是清理方法:

alcMakeContextCurrent(NULL);
alcDestroyContext(alContext);
alcCloseDevice(alDevice);

只要你完成了上下文,你就会调用这些方法......这取决于你的应用程序以及你如何使用它,但可能在dealloc的某个地方。