2011-08-10 7 views
4

私は、次の描画コードを持っている:それは実行時に次のCore Graphicsコードに「無効なコンテキスト」エラーが表示されるのはなぜですか?

static int i=10; 
    int x; 
    int y; 
    int x2; 
    int y2; 
    // Drawing code. 
    CGContextRef c = UIGraphicsGetCurrentContext();  
    CGFloat colour[4] = {1.0f,0.0f,0.0f,1.0f}; 
    CGContextSetStrokeColor(c, colour); 
    CGContextSetLineWidth(c, 1.0); 
    CGContextBeginPath(c); 
    NSLog(@"fired..."); 
    int xline[340] = {30,80,80,20};  
    int yline[340] = {40,40,20,20}; 
    CGContextBeginPath(c); 
    CGContextMoveToPoint(c, x, y); 
    CGContextAddLineToPoint(c,x2,y2); 
    //CGContextStrokePath(c);  
    for (int j = 0; j <= 3; j++) { 
     x2 = xline[j]; 
     y2 = yline[j]; 
     CGContextAddLineToPoint(c, x2, y2); 
     x = x2; 
     y = y2; 
    }  
    CGContextStrokePath(c); 
    [self setNeedsDisplay]; 
    i++; 

をしかし、私は次のエラーを受信して​​います:

Wed Aug 10 11:13:05 Mac-Minis-Mac-mini.local LineDraw[1880] <Error>: CGContextBeginPath: invalid context 0x0 
Wed Aug 10 11:13:05 Mac-Minis-Mac-mini.local LineDraw[1880] <Error>: CGContextMoveToPoint: invalid context 0x0 
Wed Aug 10 11:13:05 Mac-Minis-Mac-mini.local LineDraw[1880] <Error>: CGContextAddLineToPoint: invalid context 0x0 
Wed Aug 10 11:13:05 Mac-Minis-Mac-mini.local LineDraw[1880] <Error>: CGContextAddLineToPoint: invalid context 0x0 
Wed Aug 10 11:13:05 Mac-Minis-Mac-mini.local LineDraw[1880] <Error>: CGContextAddLineToPoint: invalid context 0x0 
Wed Aug 10 11:13:05 Mac-Minis-Mac-mini.local LineDraw[1880] <Error>: CGContextAddLineToPoint: invalid context 0x0 
Wed Aug 10 11:13:05 Mac-Minis-Mac-mini.local LineDraw[1880] <Error>: CGContextAddLineToPoint: invalid context 0x0 
Wed Aug 10 11:13:05 Mac-Minis-Mac-mini.local LineDraw[1880] <Error>: CGContextDrawPath: invalid context 0x0 

これらのエラーを引き起こす可能性があり、どのように私はこの問題を解決することができますか?

+1

私はこの質問を閉会のために投票したとは思えません。 – Robin

答えて

8

あなたはUIViewdrawRect:サブクラスのメソッドでこのコードを持っているか、具体的には(例えばUIGraphicsBeginImageContextを用いて)スタックにグラフィックスコンテキストをプッシュしている、UIGraphicsGetCurrentContext()NULLが返されていない限り。

すべての描画関数にはグラフィックスコンテキストが必要です。

+0

私の特定の例では、私は 'UIGraphicsBeginImageContext'で始まりますが、問題があればスレッドでこれをやっています同様の描画をしようとしているスレッド)。最初の数十枚の画像で正しく動作し、次の画像で失敗します。アイデア? – Olie

1

矩形線を描画する方法については、this linkを参照してください。ここではすべての情報が得られます。

関連する問題