Утечки памяти при вызове некоторых функций CTF в iPhone - PullRequest
3 голосов
/ 15 июня 2011

Я пишу функцию для вычисления индекса конца attributtedString в прямоугольнике,

Но, похоже, какая-то утечка памяти, Пожалуйста, помогите мне исправить это.

CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attributtedString);

CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, NULL, rect);

CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(currentIndex, 0), path, NULL);

CFRange frameRange = CTFrameGetVisibleStringRange(frame);
endIndex += frameRange.length;

CFRelease(frame);
CFRelease(path);
CFRelease(framesetter);

спасибо заранее.

Ответы [ 3 ]

1 голос
/ 23 июня 2011

В приведенном выше примере нет утечки памяти.Насколько мы видим, вы все правильно выпускаете.

0 голосов
/ 22 июня 2013

Я провел еще несколько исследований на устройстве, и, похоже, в CoreText есть утечка, см. Использование памяти увеличивается с CTFontCreateWithName и CTFramesetterRef

0 голосов
/ 24 августа 2012

Существует специальный выпуск для объектов CGPathRef.

//CFRelease(path);
CGPathRelease(path);
...