Утечки памяти в Core Foundation - PullRequest
       22

Утечки памяти в Core Foundation

0 голосов
/ 27 октября 2018
+ (CFArrayRef)getLinesForText:(NSAttributedString *)text width:(CGFloat)width {
    UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, width, 10000)];
    CTFramesetterRef frameSetterRef = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)text);
    CTFrameRef frameRef = CTFramesetterCreateFrame(frameSetterRef, CFRangeMake(0, 0), path.CGPath, nil);
    CFArrayRef lines = CFArrayCreateCopy(NULL, CTFrameGetLines(frameRef));
    CFRelease(frameRef);
    CFRelease(frameSetterRef);
    return lines;
}

При использовании CoreText , у меня есть такой код. После вызова метода я использую CFRelease для освобождения возвращаемых строк. Но когда профиль с утечками , эти коды все еще имеют утечки? Как это могло произойти?

1 Ответ

0 голосов
/ 28 октября 2018

Это моя вина. Мне нужно использовать CFAutorelease при возврате метода вместо того, чтобы позволить вызывающей стороне освободить возвращенные строки.

...