'invalid context 0x0' Fehler bei der Verwendung CGContext* Funktionen
/* Adding the Path */
UserGraphBuff = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(UserGraphBuff,5,10,0,1);
CGContextSetLineWidth(UserGraphBuff, 2 );
CGContextBeginPath(UserGraphBuff);
//line to last user point
CGContextAddLineToPoint(UserGraphBuff, (*xVal)[sizeof xVal / sizeof *xVal - 1], (*yNewVal)[sizeof yNewVal / sizeof *yNewVal - 1]);
//line to rest of user points in reverse order
for (int i = sizeof xVal / sizeof *xVal - 1; i > -1; i--){
CGContextAddLineToPoint(UserGraphBuff, (*xVal)[i], (*yNewVal)[i]);
}
//EOFill
CGContextEOFillPath(UserGraphBuff);
Oben ist der code, den ich versuche zu arbeiten durch. Seine angeblich zu tun, was CGContext sagt, es tut, aber ich bin nicht immer jedes Ding gezogen.
Ich bekomme immer diese Fehlermeldung:
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextSetRGBStrokeColor: invalid context 0x0
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextSetLineWidth: invalid context 0x0
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextBeginPath: invalid context 0x0
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextAddLineToPoint: invalid context 0x0
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextDrawPath: invalid context 0x0
Ich mich auf die CGContextRef in meiner header-Datei.
ich glaube nicht, dass ich verstehen CGContext gut genug, noch weiß ich, was CGContextRef werden sollte.
Wo kommt dieser code Leben? In der
Was zum Teufel ist das? Was tut es? Heißt es von
drawRect
einer UIView
Unterklasse?-(void)userShow{
Was zum Teufel ist das? Was tut es? Heißt es von
-drawRect:
?InformationsquelleAutor John Riselvato | 2011-10-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Ihren code, um zu arbeiten, es muss ausgeführt werden, in der
drawRect
Methode IhrerUIView
Unterklasse (und Sie nicht anrufendrawRect
direkt - dies ist durch das OS aufgerufen werden, wenn es Sie braucht die UIView zu Rendern selbst). Du hast vermutlich versucht, führen Sie diesen code aus einem touch-event-oder vonviewDidLoad
oder sowas.Um zu wiederholen: dein code funktioniert nicht (das heißt, Sie werfen den Fehler Ihr zu sehen), es sei denn, es läuft in der
drawRect
Methode einerUIView
Unterklasse.Und zu erklären: UIView stellt den aktuellen Kontext vor dem Aufruf von Ihrem
drawRect:
. Dies ist eine Funktion: Sie zeichnen, wenn die Zeichnung benötigen, die das system verfolgt für Sie. Kämpfen Sie nicht gegen Sie; bewegen Sie Ihre Zeichnung code, wo es sein soll, und mit dem system arbeiten. Wenn sich etwas ändert, dass die Sicht, neu gezeichnet werden müssen, die Ansicht benötigen, als ein display.Nein, er ist nicht falsch. Sie sind auf der Suche an der Quarz-docs, die eine niedrigere Stufe als UIKit. Verwenden Sie Quarz zu ziehen, wenn UIKit, erzählt Sie. Die Dokumentation deckt
drawRect:
brauchte display, etc. ist die View Programming Guide for iOS.Sorry, aber MusiGenesis ist genau richtig. Dies ist die richtige Antwort.
InformationsquelleAutor MusiGenesis