У меня проблема с утечкой памяти NSImages, когда я рисую к ним с блокировкой / разблокировкой фокуса. Утечка исчезает, когда я комментирую код УТЕЧКИ ЗДЕСЬ ниже. Итак, я знаю, что именно здесь происходит утечка.
for(int i= 0; i < nNumberImages; ++i)
{
m_apNSImageArray[i]= [[NSImage alloc] initWithSize:m_viewRect.size];
if(!m_apNSImageArray[i])
{
return;
}
//LEAKS IN THIS CODE HERE
[m_apNSImageArray[i] lockFocus];
//EDIT: Commented the lines below out, but leak persists.
//[[[[NSApp delegate] getColors] getAudioWaveColor:YES] setStroke];
//[[m_pmaBezierPaths objectAtIndex:i] stroke];
[m_apNSImageArray[i] unlockFocus];
//TO HERE
}
Я использую сборщик мусора, и этот цикл for является частью NSOperation, работающего в NSOperationQueue в OSX 10.7 Lion.
Это ошибка с блокировкой фокуса NSImage на фоновых потоках / операциях?
EDIT:
Похоже, что lockFocus выделяет новое пространство каждый раз, когда его вызывают.