gpt4 book ai didi

ios - 核心图形内存泄漏

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:09:43 24 4
gpt4 key购买 nike

分析器正在标记内存问题。通常我会使用自动释放,但这在 Core Foundation 中是不可能的。如何修复此错误?

Screen shot of error

- (CGMutablePathRef)NewCGMutablePathRefCreateWithRoundedRectForRect:(CGRect)rect andRadius:(CGFloat)radius andMargin:(CGFloat)margin andrIndent:(CGFloat)rIndent andlIndent:(CGFloat)lIndent
{
CGMutablePathRef path = CGPathCreateMutable();

CGPathMoveToPoint(path, NULL, CGRectGetMidX(rect), CGRectGetMinY(rect) + margin);
CGPathAddArcToPoint(path, NULL, CGRectGetMaxX(rect) - margin - rIndent, CGRectGetMinY(rect) + margin, CGRectGetMaxX(rect) - margin - rIndent, CGRectGetMaxY(rect) - margin, radius);
CGPathAddArcToPoint(path, NULL, CGRectGetMaxX(rect) - margin - rIndent, CGRectGetMaxY(rect) - margin, CGRectGetMinX(rect) + margin + lIndent, CGRectGetMaxY(rect) - margin, radius);
CGPathAddArcToPoint(path, NULL, CGRectGetMinX(rect) + margin + lIndent, CGRectGetMaxY(rect) - margin, CGRectGetMinX(rect) + margin + lIndent, CGRectGetMinY(rect) + margin, radius);
CGPathAddArcToPoint(path, NULL, CGRectGetMinX(rect) + margin + lIndent, CGRectGetMinY(rect) + margin, CGRectGetMaxX(rect) - margin, CGRectGetMinY(rect) +margin, radius);
CGPathCloseSubpath(path);


return path;
}

按照建议添加发布路径代码后,我得到另一个错误加上原来的错误?

additional screen shot

最佳答案

CFRelease(path);

CoreFoundation reference

在不再需要该路径后使用 CFRelease。

CGMutablePathRef path = [obj NewCGMutablePathRefCreateWithRoundedRectForRect:rect andRadius:radius andMargin:margin andrIndent:rIndent andlIndent:lIndent];
//do something with path, then release it
CFRelease(path);

另一件事是返回非自动释放对象的方法必须以:

  • 分配
  • 复制
  • 新的
  • 保留

所以你应该命名你的方法:newCGMutablePathRefCreateWithRoundedRectForRect代替:NewCGMutablePathRefCreateWithRoundedRectForRect

关于ios - 核心图形内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17920250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com