通过 Product -> Analyze 来进行静态分析
- 可以使用Quartz 2D的函数来指定retain和release一个对象。例如,如果创建了一个CGColorSpace对象,则使用函数CGColorSpaceRetain和CGColorSpaceRelease来retain和release对象。
- 也可以使用Core Foundation的CFRetain和CFRelease。注意不能传递NULL值给这些函数
|
使用Path 对象时的内存管理问题:
1、凡是遇到 retain 、 copy 、 create 函数创建出的对象, 使用完后都需要进行 release,否则将导致内存泄露 2、但是CGPathCreateMutable( )不是 OC 方法, 所以不是调用某个对象的 release方法 3、CGXxxxxCreate 对应的就有 CGXxxxxRelease。 4、通过 CFRelease(任何类型);可以释放任何类型。
|
示例代码:
1 - (void)drawRect:(CGRect)rect 2 { 3 // 1.获取上下文(layer) 4 CGContextRef ctx = UIGraphicsGetCurrentContext(); 5 6 // 2.拼接路径 7 CGMutablePathRef path = CGPathCreateMutable(); 8 CGPathMoveToPoint(path, NULL, 50, 50); 9 CGPathAddLineToPoint(path, NULL, 100, 100);10 11 // 3.把路径添加到上下文当中12 CGContextAddPath(ctx, path);13 14 // 4.渲染15 CGContextStrokePath(ctx);16 17 // 释放18 CGPathRelease(path); //方法119 CFRelease(path); //方法220 }
如有疑问,请发送邮件至 shorfng@126.com 联系我。
By:蓝田(Loto)
原标题:1.2 Quartz 2D 内存管理
关键词:内存