星空网 > 软件开发 > 操作系统

1.2 Quartz 2D 内存管理

通过 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 内存管理

关键词:内存

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

安庆市空运:https://www.goluckyvip.com/tag/102803.html
空运快递有哪些:https://www.goluckyvip.com/tag/102804.html
柳州空运:https://www.goluckyvip.com/tag/102805.html
行李空运:https://www.goluckyvip.com/tag/102806.html
fra空运:https://www.goluckyvip.com/tag/102807.html
国际空运大包:https://www.goluckyvip.com/tag/102809.html
石象湖景区门票-石象湖景区门票优惠政策:https://www.vstour.cn/a/411243.html
北京到嵩山自驾游沿途景点 北京距离嵩山有多远:https://www.vstour.cn/a/411244.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流