在设置OpenAL时,泄漏仪器告诉我,我正在此处泄漏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?

最佳答案

以下是清理方法:

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

你只要处理完上下文就可以调用这些方法。。。这取决于你的应用程序和你是如何使用它的,但可能在一个dealloc某处。

10-04 13:07