CGColorSpaceRef和CGGradientRef 的内存泄露

原创 2016年05月31日 17:17:35
-(void) createDefaultBrushTexture{
    UIGraphicsBeginImageContext(CGSizeMake(64, 64));
    CGContextRef defBrushTextureContext = UIGraphicsGetCurrentContext();
    UIGraphicsPushContext(defBrushTextureContext);

    size_t num_locations = 3;
    CGFloat locations[3] = { 0.0, 0.8, 1.0 };
    CGFloat components[12] = { 1.0,1.0,1.0, 1.0,
        1.0,1.0,1.0, 1.0,
        1.0,1.0,1.0, 0.0 };
    CGColorSpaceRef myColorspace = CGColorSpaceCreateDeviceRGB();
    CGGradientRef myGradient = CGGradientCreateWithColorComponents (myColorspace, components, locations, num_locations);

    CGPoint myCentrePoint = CGPointMake(32, 32);
    float myRadius = 20;

    CGContextDrawRadialGradient (UIGraphicsGetCurrentContext(), myGradient, myCentrePoint,
                                 0, myCentrePoint, myRadius,
                                 kCGGradientDrawsAfterEndLocation);

    UIGraphicsPopContext();

    [self setBrushTexture:UIGraphicsGetImageFromCurrentImageContext()];

    UIGraphicsEndImageContext();
}
解决方案:

Ok lets look at colorspace and see what the problem is. myColorspace is created CGColorSpaceCreateDeviceRGB retain count +1 and then never released. This is unbalanced and it needs to be released at the end. Add a CGColorSpaceRelease(myColorSpace);

"potential leak of an object stored into myGradient"

Same problem, creation with retain count +1, with no corresponding release. Add a CGGradientRelease(myGradient);



CGMutablePathRef详解

绘图第四篇:CGMutablePathRef 第四种,利用路径来绘制图形,下边照常是我给的demo截图及效果: 效果图:...
  • baidu_31683691
  • baidu_31683691
  • 2016年08月03日 18:30
  • 3820

C#内存泄露与资源释放 经验总结

经验总结:C#并不是有了垃圾回收机制,你就可以对内存管理放任不管,其实在稍不注意的时候,可能就造成了内存泄露,或者超大内存占用~ 以下记录下遇到过的内存优化-内存泄露的问题与应对方案。 1...
  • Yokeqi
  • Yokeqi
  • 2014年11月13日 18:39
  • 10474

如何在.net应用中发现和避免内存和资源泄露

如何在.net应用中发现和避免内存和资源泄露 By Fabrice Marguerie 尽管很多人相信在.net应用中谈及内存及资源泄露是件很轻松的事情。但GC(垃圾回收器)并不是魔法师,并不...
  • tiana0
  • tiana0
  • 2015年06月19日 17:15
  • 2211

Android开发常见的Activity中内存泄漏及解决办法

上一篇文章楼主提到由Context引发的内存泄漏,在这一篇文章里,我们来谈谈Android开发中常见的Activity内存泄漏及解决办法。本文将会以“为什么”“怎么解决”的方式来介绍这几种内存泄漏。 ...
  • u010198148
  • u010198148
  • 2016年06月12日 23:52
  • 8359

Tomcat内存泄露问题排查

  • 2018年01月17日 19:27
  • 824KB
  • 下载

Android 内存泄露

  • 2015年03月13日 11:52
  • 77KB
  • 下载

android性能优化之内存泄露

  • 2017年10月13日 15:31
  • 2.73MB
  • 下载

检查代码内存泄露

  • 2017年10月20日 15:31
  • 559KB
  • 下载

内存泄露检测工具

  • 2013年12月05日 18:04
  • 727KB
  • 下载

C++内存泄露检测器

  • 2012年11月03日 13:32
  • 66KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CGColorSpaceRef和CGGradientRef 的内存泄露
举报原因:
原因补充:

(最多只允许输入30个字)