问题描述
|
我编写了一个函数来计算rect中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);
提前致谢。
解决方法
上面的示例中没有内存泄漏。据我们所知,您正在正确发布所有内容。
, CGPathRef对象有一个特殊的发行版。
//CFRelease(path);
CGPathRelease(path);
, 我对设备进行了更多调查,CoreText中似乎确实有泄漏,请参阅随着CTFontCreateWithName和CTFramesetterRef内存使用量的增长