Ios 我有没有漏水
我从xcode执行Ios 我有没有漏水,ios,objective-c,memory-leaks,Ios,Objective C,Memory Leaks,我从xcode执行分析时收到泄漏警告,该警告如下图所示 但是,如果我使用仪器进行检查,则不会收到任何“泄漏”警告。图片如下图所示 问题:我有没有漏水 普通的 void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor, CGColorRef endColor) { CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
分析时收到泄漏警告,该警告如下图所示
但是,如果我使用仪器进行检查,则不会收到任何“泄漏”警告。图片如下图所示
问题:我有没有漏水
普通的
void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor, CGColorRef endColor) {
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGFloat locations[] = { 0.0, 1.0 };
NSArray *colors = [NSArray arrayWithObjects:(__bridge id)startColor, (__bridge id)endColor, nil];
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef) colors, locations);
CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect));
CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect));
CGContextSaveGState(context);
CGContextAddRect(context, rect);
CGContextClip(context);
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
CGContextRestoreGState(context);
CGGradientRelease(gradient);
//CGColorSpaceRelease(colorSpace);--------> this will fix leaking
}
- 展开这个小三角形,Xcode将向您显示导致泄漏的执行路径
- 是的,代码正在泄漏颜色空间
- 这个分配图看起来确实像是一个漏洞,但对于颜色空间来说,这是非常陡峭的,除非你创建了很多颜色空间
- 可能会有帮助
共享代码,您的类几乎肯定会泄漏。分析器中出现错误的概率非常低。“仪器中的泄漏不是完美的。”苏尔坦说,“如果我听过的话,那就是错误的信息。”。仪器太好了,NSObject不得不隐藏一些内存管理内部构件,以防it@George当前位置请看我的OP。它是否正在执行?如果代码不运行,它就不会泄漏。