Mar*_*rra 7 objective-c core-text
在iOS上使用一些CoreText代码,我很困惑为什么这是CTFrame的过度发布.我已经确认它是一个过度释放但我感到困惑,因为它是用一种create方法创建的.
for (NSValue *value in [self frameArray]) {
CGRect column = [value CGRectValue];
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, NULL, column);
CTFrameRef frame = CTFramesetterCreateFrame(bodyFramesetter, CFRangeMake(position, 0), path, NULL);
CTFrameDraw(frame, context);
position += CTFrameGetVisibleStringRange(frame).length;
CGPathRelease(path);
// ???: Why does this cause an overrelease?
//CFRelease(frame);
}
Run Code Online (Sandbox Code Playgroud)
代码库是3.2,并且第一个版本不会发生崩溃.在绘制视图时,它会在某个时刻"随机"出现.这个循环,你可能猜到的是在-drawRect:视图中.此应用程序中没有多线程.