1.2 Quartz 2 Dメモリ管理

1920 ワード

に合格 Product -> Analyze 静解析を行います
 
  • Quartzが使用可能 2 Dの関数はretainとreleaseのオブジェクトを指定します.たとえば、CGcolorSpaceオブジェクトを作成した場合、関数CGcolorSpaceRepainとCGcolorSpaceReleaseを使用してオブジェクトをretainおよびreleaseします.
  • Coreもご利用いただけます FoundationのCFRetainとCFRelease.これらの関数
  • にNULL値を渡すことはできません.
     
     
    Pathの使用 オブジェクトのメモリ管理に関する問題:
    1、出会い retain 、 copy 、 create関数で作成されたオブジェクトは、使用後に行う必要があります. release、そうでないとメモリが漏洩します
    2、しかしCGPathCreateMutable()は OC 方法、 オブジェクトを呼び出すのではありません releaseメソッド
    3、CGXxxxxCreate 対応しているのは CGXxxxxRelease.
    4、通過 CFRease(任意のタイプ);任意のタイプを解放できます.
     
     
    サンプルコード:
     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);  //  1
    19     CFRelease(path);      //  2
    20 }

     
    質問があれば、メールを送ってください. 
    [email protected]連絡してください.
     
    By:藍田(Loto)