2011-03-26 22 views
1

我有一個問題圖紙通過這個圖形上下文UIGraphicsGetCurrentContext問題

CGContextRef context = UIGraphicsGetCurrentContext(); 

這裏對象是我用來繪製

- (void) draw: (CGContextRef) gc 
{  
    CGFloat black[4] = {0.0f, 0.0f, 0.0f, 1.0f}; // R G B + Alpha 
    CGPoint p [2]; 
    p[0].x = xStart ; 
    p[0].y = yStart ; 
    p[1].x = xEnd ; 
    p[1].y = yEnd ; 
    CGContextSetStrokeColor(gc, black); //Definie la couleur 
    CGContextStrokeLineSegments(gc, p, 2) ; 
} 

一些對象繪製代碼,其他的不要(很奇怪)和在控制檯我讀:

Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextDrawImage: invalid context 0x0 
Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextSetStrokeColor: invalid context 0x0 
Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextStrokeLineSegments: invalid context 0x0 
Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextSetStrokeColor: invalid context 0x0 
Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextStrokeLineSegments: invalid context 0x0 
Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextSetStrokeColor: invalid context 0x0 
Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextStrokeLineSegments: invalid context 0x0 
Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextSetStrokeColor: invalid context 0x0 
Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextStrokeLineSegments: invalid context 0x0 
Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextSetStrokeColor: invalid context 0x0 
Thu Mar 24 21:53:59 MacBook-Air-di-Michele-Giarratana.local IVBricker[381] <Error>: CGContextStrokeLineSegments: invalid context 0x0 
+1

你究竟在哪裏調用draw方法?用上下文顯示你正在調用的代碼。另外,你是在主線程還是分離的線程上調用它? – Kalle 2011-03-26 09:52:44

+0

同意@Kalle - 首先要檢查的是如果你在主線程中調用'UIGraphicsGetCurrentContext'。我敢打賭你不是。 – 2011-05-08 02:31:18

回答

1

所以我不能說無效的內容錯誤,因爲我們需要看到其餘的代碼,但它看起來像顏色空間可能不正確(默認情況下它不是RGB)。在你調用筆畫之前加上這個:

CGContextSetStrokeColorSpace(gc, CGColorSpaceCreateDeviceRGB()); 
+1

這會造成泄漏。你應該做一些像'CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextSetStrokeColorSpace(gc,colorSpace); CGColorSpaceRelease(colorSpace);' – 2011-08-17 01:25:48