1.2 Quartz 2D 記憶體管理,quartz2d

來源:互聯網
上載者:User

1.2 Quartz 2D 記憶體管理,quartz2d

通過 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) 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.