CGMutablePath
在以下情况下使用 a 时出现内存泄漏:
- (CGMutablePathRef) textMutablePathForFrame:(CGRect)frame
{
CGAffineTransform transform = CGAffineTransformMakeScale(frame.size.width / self.shapeMutablePathSize.width, frame.size.height / self.shapeMutablePathSize.height);
return CGPathCreateMutableCopyByTransformingPath(self.shapeMutablePath, &transform);
}
- (CTFrameRef) textFrameForFrame:(CGRect)frame framesetter:(CTFramesetterRef)framesetter
{
CGMutablePathRef textMutablePath = [self textMutablePathForFrame:frame];
CTFrameRef textFrame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), textMutablePath, NULL);
CGPathRelease(textMutablePath);
return textFrame;
}
通过仪器分析,我在带有“ return
”的行中textMutablePathForFrame
发现内存泄漏,其中表示“在第 132 行分配的对象的潜在泄漏”(第 132 行是返回行本身)。
我还在textFrameForFrame
“”行出现内存泄漏CGPathRelease(textMutablePath);
:“调用者此时不拥有的对象的引用计数不正确递减”。
无法理解这一点,感觉我终于对 Core 中的内存管理有了一个很好的理解。
更新:看起来这可能是一个错误,要再撞一次,看看其他人是否有不同的感觉。