"ungültiger Kontext 0x0" bei Verwendung von UIBezierPath und CAShapeLayer

8

Ich habe eine Zwangslage, die der in dieser SO-Thread . Ich habe jede Antwort auf diesen Thread gelesen und konnte keine finden, die mein Problem gelöst haben. Ich habe mein Problem auf 4 Zeilen innerhalb der Funktion unten eingegrenzt. Jede der 4 Zeilen gibt mehrere Fehlerzeilen aus, die ich unten aufgelistet habe (ich habe Duplikate entfernt).

Ich habe versucht, [path closePath]; unter diese 4 Zeilen zu verschieben, aber es ändert nichts. Ich habe auch einen Haltepunkt vor der ersten Zeile gesetzt und manuell die Funktion Zeile für Zeile durchgespielt, und nur diese 4 Zeilen verursachen Chaos.

Wie es scheint, ist ein Trend mit diesem Problem, alles rendert genau so, wie es sollte, aber es überflutet die Konsole mit diesen Arten von Nachrichten.

Jede Hilfe wäre sehr willkommen und ich würde Ihnen gerne weitere Informationen und Updates zur Verfügung stellen.

Funktion:

%Vor%

Protokollausgabe:

  

: CGContextSetStrokeColorWithColor: ungültiger Kontext 0x0. Dies   ist ein schwerwiegender Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet   ein ungültiger Kontext und trägt somit zu einem Gesamtzusammenhang bei   Verschlechterung der Systemstabilität und Zuverlässigkeit. Diese Notiz ist ein   Höflichkeit: Bitte beheben Sie dieses Problem. Es wird zu einem fatalen Fehler in einem   bevorstehendes Update.

     

: CGContextSetFillColorWithColor: ungültiger Kontext 0x0. Das ist   ein ernster Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet ein   ungültiger Kontext und trägt somit zu einer allgemeinen Verschlechterung bei   von Systemstabilität und Zuverlässigkeit. Diese Notiz ist eine Höflichkeit: bitte   behebe dieses Problem. Es wird ein fataler Fehler in einem bevorstehenden Update werden.

     

: CGContextSaveGState: ungültiger Kontext 0x0. Das ist ein ernstes Problem   Error. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Wert   Zusammenhang und trägt damit zu einer allgemeinen Verschlechterung bei   Systemstabilität und Zuverlässigkeit. Diese Notiz ist eine Höflichkeit: bitte   behebe dieses Problem. Es wird ein fataler Fehler in einem bevorstehenden Update werden.

     

: CGContextSetLineWidth: ungültiger Kontext 0x0. Das ist ein ernstes Problem   Error. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Wert   Zusammenhang und trägt damit zu einer allgemeinen Verschlechterung bei   Systemstabilität und Zuverlässigkeit. Diese Notiz ist eine Höflichkeit: bitte   behebe dieses Problem. Es wird ein fataler Fehler in einem bevorstehenden Update werden.

     

: CGContextSetLineJoin: ungültiger Kontext 0x0. Das ist ein ernstes Problem   Error. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Wert   Kontext und trägt damit zu einer allgemeinen Verschlechterung bei   Systemstabilität und Zuverlässigkeit. Diese Notiz ist eine Höflichkeit: bitte   behebe dieses Problem. Es wird ein fataler Fehler in einem bevorstehenden Update werden.

     

: CGContextSetLineCap: ungültiger Kontext 0x0. Das ist ein ernstes Problem   Error. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Wert   Zusammenhang und trägt damit zu einer allgemeinen Verschlechterung bei   Systemstabilität und Zuverlässigkeit. Diese Notiz ist eine Höflichkeit: bitte   behebe dieses Problem. Es wird ein fataler Fehler in einem bevorstehenden Update werden.

     

: CGContextSetMiterLimit: ungültiger Kontext 0x0. Das ist ein   schwerer Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet ein   ungültiger Kontext und trägt somit zu einer allgemeinen Verschlechterung bei   von Systemstabilität und Zuverlässigkeit. Diese Notiz ist eine Höflichkeit: bitte   behebe dieses Problem. Es wird ein fataler Fehler in einem bevorstehenden Update werden.

     

: CGContextSetFlatness: ungültiger Kontext 0x0. Das ist ein ernstes Problem   Error. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Wert   Zusammenhang und trägt damit zu einer allgemeinen Verschlechterung bei   Systemstabilität und Zuverlässigkeit. Diese Notiz ist eine Höflichkeit: bitte   behebe dieses Problem. Es wird ein fataler Fehler in einem bevorstehenden Update werden.

     

: CGContextAddPath: ungültiger Kontext 0x0. Das ist ein ernstes Problem   Error. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Wert   Kontext und trägt damit zu einer allgemeinen Verschlechterung bei   Systemstabilität und Zuverlässigkeit. Diese Notiz ist eine Höflichkeit: bitte   behebe dieses Problem. Es wird ein fataler Fehler in einem bevorstehenden Update werden.

     

: CGContextDrawPath: ungültiger Kontext 0x0. Das ist ein ernstes Problem   Error. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Wert   Kontext und trägt damit zu einer allgemeinen Verschlechterung bei   Systemstabilität und Zuverlässigkeit. Diese Notiz ist eine Höflichkeit: bitte   behebe dieses Problem. Es wird ein fataler Fehler in einem bevorstehenden Update werden.

     

: CGContextRestoreGState: ungültiger Kontext 0x0. Das ist ein   schwerer Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet ein   ungültiger Kontext und trägt somit zu einer allgemeinen Verschlechterung bei   von Systemstabilität und Zuverlässigkeit. Diese Notiz ist eine Höflichkeit: bitte   behebe dieses Problem.Es wird ein fataler Fehler in einem bevorstehenden Update werden.

    
rebello95 02.08.2014, 21:13
quelle

1 Antwort

20

Sie mischen Ihre API. Wenn Sie einen CAShapeLayer verwenden, führen Sie die Zeichnung nicht selbst aus. Sie konfigurieren lediglich das Objekt und lassen den Renderserver von CoreAnimation die Zeichnung ausführen. Mit CoreGraphics machen Sie Ihre Zeichnung in einem CGContextRef. Ihr Problem hier ist, dass CGContextRef erstellt werden muss (was automatisch geschieht in - [UIView drawRect:]). Sie würden dies mit einem der UIGraphicsBeginImageContext tun ... normalerweise, aber hier wollen Sie nicht wirklich CG, Sie wollen CA. Also lassen Sie diese vier Zeilen einfach weg und stellen Sie sicher, dass Ihr CAShapeLayer richtig konfiguriert ist und Sie werden gut sein.

    
axiixc 02.08.2014, 22:27
quelle