ungültiger Kontext 0x0 unter iOS 7.0 und Systemverschlechterung

218

Ich habe so viele Suchergebnisse gelesen, wie ich zu diesem gefürchteten Problem finden konnte. Leider scheint sich jedes auf einen bestimmten Funktionsaufruf zu konzentrieren.

Mein Problem ist, dass ich denselben Fehler von mehreren Funktionen erhalte, von denen ich vermute, dass sie von den von mir verwendeten Funktionen zurückgerufen werden.

Um die Sache noch schlimmer zu machen, befindet sich der eigentliche Code in einem benutzerdefinierten privaten Framework, das in ein anderes Projekt importiert wird, und als solches ist das Debuggen nicht so einfach?

Kann mich jemand in die richtige Richtung weisen? Ich habe das Gefühl, dass ich bestimmte Methoden falsch oder mit schlechtem Kontext aufrufe, aber die Ausgabe von xcode ist derzeit nicht sehr hilfreich.

: CGContextSetFillColorWithColor: Ungültiger Kontext 0x0. Dies ist ein schwerwiegender Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Kontext und trägt dadurch zu einer allgemeinen Verschlechterung der Systemstabilität und -zuverlässigkeit bei. Dieser Hinweis ist eine Höflichkeit: Bitte beheben Sie dieses Problem. Bei einem bevorstehenden Update wird dies zu einem schwerwiegenden Fehler.

: CGContextSetStrokeColorWithColor: Ungültiger Kontext 0x0. Dies ist ein schwerwiegender Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Kontext und trägt dadurch zu einer allgemeinen Verschlechterung der Systemstabilität und -zuverlässigkeit bei. Dieser Hinweis ist eine Höflichkeit: Bitte beheben Sie dieses Problem. Bei einem bevorstehenden Update wird dies zu einem schwerwiegenden Fehler.

CGContextSaveGState: Ungültiger Kontext 0x0. Dies ist ein schwerwiegender Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Kontext und trägt dadurch zu einer allgemeinen Verschlechterung der Systemstabilität und -zuverlässigkeit bei. Dieser Hinweis ist eine Höflichkeit: Bitte beheben Sie dieses Problem. Bei einem bevorstehenden Update wird dies zu einem schwerwiegenden Fehler.

: CGContextSetFlatness: Ungültiger Kontext 0x0. Dies ist ein schwerwiegender Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Kontext und trägt dadurch zu einer allgemeinen Verschlechterung der Systemstabilität und -zuverlässigkeit bei. Dieser Hinweis ist eine Höflichkeit: Bitte beheben Sie dieses Problem. Bei einem bevorstehenden Update wird dies zu einem schwerwiegenden Fehler.

: CGContextAddPath: Ungültiger Kontext 0x0. Dies ist ein schwerwiegender Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Kontext und trägt dadurch zu einer allgemeinen Verschlechterung der Systemstabilität und -zuverlässigkeit bei. Dieser Hinweis ist eine Höflichkeit: Bitte beheben Sie dieses Problem. Bei einem bevorstehenden Update wird dies zu einem schwerwiegenden Fehler.

: CGContextDrawPath: Ungültiger Kontext 0x0. Dies ist ein schwerwiegender Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Kontext und trägt dadurch zu einer allgemeinen Verschlechterung der Systemstabilität und -zuverlässigkeit bei. Dieser Hinweis ist eine Höflichkeit: Bitte beheben Sie dieses Problem. Bei einem bevorstehenden Update wird dies zu einem schwerwiegenden Fehler.

: CGContextRestoreGState: Ungültiger Kontext 0x0. Dies ist ein schwerwiegender Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Kontext und trägt dadurch zu einer allgemeinen Verschlechterung der Systemstabilität und -zuverlässigkeit bei. Dieser Hinweis ist eine Höflichkeit: Bitte beheben Sie dieses Problem. Bei einem bevorstehenden Update wird dies zu einem schwerwiegenden Fehler.

: CGContextGetBlendMode: Ungültiger Kontext 0x0. Dies ist ein schwerwiegender Fehler. Diese Anwendung oder eine von ihr verwendete Bibliothek verwendet einen ungültigen Kontext und trägt dadurch zu einer allgemeinen Verschlechterung der Systemstabilität und -zuverlässigkeit bei. Dieser Hinweis ist eine Höflichkeit: Bitte beheben Sie dieses Problem. Bei einem bevorstehenden Update wird dies zu einem schwerwiegenden Fehler.

Diese Fehler können auftreten, wenn eine benutzerdefinierte Ansicht oder eine ihrer geerbten Klassen angezeigt wird. Zu diesem Zeitpunkt erscheinen sie mehrmals, bis die Tastatur keine Eingabe mehr liefert. Berührungsereignisse werden weiterhin registriert, das System verlangsamt sich jedoch und kann schließlich zu nicht zugewiesenen Objektfehlern führen.

EDIT # 1: Ich habe Zugriff auf das zu importierende Framework, sehe aber in den Klassen, die das Problem verursachen, nichts Seltsames.

EDIT # 2: Ich habe gerade eine E-Mail erhalten, dass iOS 7.1 für Entwickler freigegeben wurde. Ich bin gespannt, ob dies verschwindet oder schlimmer wird oder gelöst werden kann.

Ælex
quelle
8
Wir erhalten den gleichen Fehler in unserer App - aus dem Standardtextfeld im Formular. Wenn Sie mehrmals auf das Textfeld tippen, während die Tastatur angezeigt wird, wird dieser Fehler angezeigt.
Hier gilt das gleiche. Manchmal Hunderte dieser Protokolle, manchmal Null. Ich dachte, das liegt daran, dass ich drawRect überschreibe: aber es scheint etwas anderes zu sein. Ignoriere es jetzt.
Krumelur
2
Ich habe gerade das erste Tutorial auf developer.apple.com beendet (Kopieren des von Apple vorgeschlagenen Codes) und erhalte denselben Fehler. Wenn erfahrene Programmierer sich dieses Tutorial ansehen, können sie möglicherweise die Ursache für dieses Problem ermitteln.
Antonio Sesto
1
Siehe unten (
deaktivieren
1
Kommt noch im Jahr 2016 vor (XCode 7, iOS 9.2), noch kein offensichtlicher Schaden angerichtet.
Hatchmaster J

Antworten:

162

Andere werden Sie bitten, den Code zu veröffentlichen, in dem Sie auf einen zentralen Grafikkontext zugreifen, aber ich bezweifle, dass dies das Problem ist. Diese ungültigen Kontext-0x0-Fehlermeldungen sind häufig und in iOS 7 leicht zu reproduzieren. Tatsächlich kann ich den Fehler mithilfe eines Storyboards mit Null-Code reproduzieren. Ich ziehe ein UITextField auf die Leinwand in IB, starte die App und tippe zweimal in das Textfeld.

In vielen Situationen fällt es mir schwer, die ungültigen Kontext-0x0-Fehlermeldungen ernst zu nehmen. Ich weiß nicht, ob Ihre Situation größere Bedenken erfordert (ich stimme Rob Napier zu, dass es sich lohnt, dies zu untersuchen, insbesondere wenn Sie explizit einen Grafikkontext verwenden).

In meinen eigenen Projekten hoffe ich, dass viele dieser Fehler eines Tages auf magische Weise verschwinden (aber dieser Tag kam nicht mit 7.0.3).

Update: Nach der Installation von Xcode 5.1 und dem Targeting von iOS 7.1 kann ich den Fehler nicht mehr reproduzieren, indem ich zweimal in ein leeres Textfeld tippe.

Bilobatum
quelle
10
Sie haben völlig Recht mit diesem iOS 7 UITextField-Fehler. Stellen Sie sicher, dass Sie ein Radar dafür öffnen (bugreport.apple.com). Gehen Sie jedoch nicht zu schnell davon aus, dass dies hier das Problem ist. Da es sich um eine benutzerdefinierte Ansicht handelt, lohnt es sich, zunächst die Punkte von @ Rob zu untersuchen.
Rob Napier
2
Das passiert mir. Ich lasse ein Uitextfeld auf IB fallen, erhalte diesen Fehler und die Tastatur wird nicht angezeigt. Gibt es eine Lösung? Vielen Dank
Frade
@Frade Für mich erscheint die Tastatur und die App läuft trotz der strengen Fehlermeldung normal. Möglicherweise haben Sie ein zusätzliches Problem.
bilobatum
3
Ich habe auch das gleiche Problem. Es passiert auch nur im Simulator, aber ich habe festgestellt, dass ich, wenn ich den Fehler bekomme, die Mac-Tastatur nicht zum Eingeben des Simulators verwenden kann und die Bildschirmtastatur verwenden muss, was sehr frustrierend ist. In meiner App verwende ich keine benutzerdefinierten Ansichten, daher erstelle oder verwende ich niemals manuell einen CG-Kontext.
1
Gott sei Dank dafür, ich dachte, es sei meine App, die schuld war! Du hast aber vollkommen recht; Es war ein Doppelklick in ein Textfeld, das diesen Fehler auch für mich verursachte.
Ash
201

Wenn Sie neugierig sind , was Code wird diese Protokolle verursacht, können Sie einen symbolischen Breakpoint hinzufügen auf CGPostError.

Art Gillespie
quelle
2
Vielen Dank für den Tipp zu CGPostError. Ich habe einen Haltepunkt darauf gesetzt und es sieht so aus, als würde ich nichts tun, um dieses Problem zu verursachen. In meinem Fall geschieht dies im Hauptthread, aber nicht in meinem Code.
Paul Heller
10
Stimmen Sie ab, denn obwohl dies in diesem speziellen Fall nicht die Lösung ist, wird häufig hervorgehoben, wo der Fehler liegt, wenn er im Rahmen des eigenen Codes des Programmierers liegt.
Ash
27
Dies ist ein großartiger Vorschlag. Für diejenigen, die nicht mit symbolischen Haltepunkten vertraut sind oder wissen, wie sie in Xcode hinzugefügt werden, finden Sie hier das Dokument von Apple. developer.apple.com/library/ios/recipes/…
Tony Adams
Das hat mir geholfen. In meinem Fall wurde hervorgehoben, dass ich einer Ansicht in meiner OS X-App einen NSGradient hinzugefügt habe.
Aaron Vegh
1
Es scheint, als hätte ich gezeichnet, bevor ich einen Rahmen für eine bestimmte Ansicht festgelegt habe. Danke! :)
Rick van der Linde
42

Diese Art von Fehlern ist historisch gesehen das Ergebnis des Aufrufs von Core Graphics-Funktionen, wenn sie sich nicht in einem Kontext befinden, der innerhalb drawRectoder zwischen Aufrufen wie UIGraphicsBeginImageContextund UIGraphicsEndImageContext(oder anderen UIKit-Funktionen wie denen, die einen Kontext beginnen und beenden) hergestellt wird.

Allerdings ist bilobatum richtig, dass diese bestimmte Fehlerfolge auf den Fehler in iOS 7 zurückzuführen sein kann, auf den er in seiner Antwort verweist. Wenn diese Fehler in Ihren iOS6-Zielen nicht angezeigt werden oder wenn Sie nach einem kurzen Scan dieses privaten Frameworks keine verdächtigen Core Graphics-Aufrufe finden, liegt möglicherweise nur dieser iOS 7-Fehler vor. Guter Fang, Bilobatum!

rauben
quelle
Ich habe eine Ansicht im privaten Framework, das drawRect aufruft. Während ich keine der genannten Methoden direkt aufrufe, gehe ich nur davon aus, dass der Code in dieser Klasse irgendwie verwandt ist. Wie ich bereits erwähnt habe, läuft unter früheren iOS-Geräten alles reibungslos.
Ælex
Der Vollständigkeit halber (dies ist das beste Google-Ergebnis) möchte ich darauf hinweisen, dass der kryptische Fehler unter OSX 10.11.3 unverändert bleibt - und, wie Rob sagt, durch eine Zeichenfunktion außerhalb von drawRect oder einem anderen Kontext verursacht wird. verwandte Funktion.
green_knight
26
UIGraphicsBeginImageContext( size );
CGContextRef context = UIGraphicsGetCurrentContext();

Stellen Sie sicher, dass size.width oder size.height nicht 0 ist.

Sie können CGPostError einen Symbol-Haltepunkt hinzufügen, um dies zu überprüfen

lbsweek
quelle
Also… einen symbolischen Haltepunkt bei CGPostError hinzufügen, wie kann man die Größe an diesem Punkt betrachten?
Krise
Sie können den Funktionsaufrufstapel unter "Debug-Navigation anzeigen" mit Befehl + 6 anzeigen. Klicken Sie dann auf den Baum und kehren Sie zu Ihrer Funktion zurück, um die Variable anzuzeigen.
lbsweek
Ja, ich habe die Bildansicht übergeben, um diese Bildansicht kreisförmig zu machen. Ich habe jedoch festgestellt, dass ihre Größe Null ist. Endlich nach 2 Tagen gelöst: D.
JiteshW
19

Ich hatte dieses Problem mit einem einfachen UITextField (Tastatur wird nicht angezeigt und viele verschiedene ungültige Kontextfehlermeldungen auf der Konsole). Ich finde nur eine Problemumgehung, indem ich auf ein anderes Problem in SO schaue : Kann keine ausführbare Datei für CFBundle CertUIFramework.axbundle finden

Mach einfach:

Klicken Sie auf iOS Simulator> Inhalt und Einstellungen zurücksetzen ... und führen Sie ihn erneut aus.

Das Problem sollte nicht mehr da sein

Kevin Delord
quelle
16

In meinem Fall habe ich diese Fehler in diesem Code:

CAShapeLayer *shapeLayer = [CAShapeLayer layer];
UIBezierPath *path;

path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(0, 0)];
[path addLineToPoint:CGPointMake(size*2, 0)];
[path addLineToPoint:CGPointMake(size, size*2)];
[path closePath];
[path fill];

shapeLayer.path = path.CGPath;
shapeLayer.strokeColor = [[UIColor blackColor] CGColor];
shapeLayer.fillColor = color;
shapeLayer.lineWidth = width;

[self addSublayer:shapeLayer];

Nach einigen Gedanken und Tests erkenne ich das Problem - es war dieser Anruf:

[path fill];

Wie ich feststelle - in meinem Code ist dieser Aufruf nicht erforderlich, da das Befüllen auf andere Weise erfolgt - entferne ich ihn einfach.

Denis Kozhukhov
quelle
5

Ich hatte das gleiche Problem und habe vergessen, QuartzCore / QuartzCore.h zu importieren. Dies hat mein Problem mit diesen Fehlern behoben.

    #import <QuartzCore/QuartzCore.h>
David Roop
quelle
5

Klare Antwort: Das Problem ist, dass Sie Core-Grafikelemente wie CGContext usw. in anderen als verwendet haben- (void)drawRect:(CGRect)rect dieser Methode verwendet haben.

Verschieben Sie nun bitte Ihren Code auf diese Methode. Und es wird Ihnen Warnungen / Fehler geben.


quelle
4

Ich habe diesen Fehler erhalten, weil ich ein UIColor-Objekt als Attribut in einem NSAttributedString-Wörterbuch verwendet habe, das in einem CATextLayer-Objekt verwendet wurde. Ich habe das Wörterbuch so geändert, dass es ein CGColorRef enthält, und der Fehler ist verschwunden.

[wordAttributes setObject:(id)[UIColor whiteColor].CGColor forKey:(NSString*)kCTForegroundColorAttributeName];
Collin
quelle
2

Ich hatte Fälle, in denen der zurückgegebene Kontext UIGraphicsGetCurrentContext()lautet NULL, und wenn Sie versuchen, ihn für irgendetwas zu verwenden, wird diese Meldung angezeigt. Es liegt in der Verantwortung der Ansicht, einen Kontext UIGraphicsPushContextvor dem Aufruf zu pushen drawRect:, wenn Sie drawRect:direkt anrufen, anstatt [view setNeedsDisplay]das Risiko einzugehen , dass der Kontext noch nicht festgelegt wurde. Meine Vermutung ist, dass vor iOS 7 der Kontext für die Ansicht verschoben initwurde und jetzt unter iOS 7 der Kontext erst verschoben wird, wenn das erste Mal drawRect:aufgerufen wird. Ich vermute, dass ein UIKit-Code drawRect:direkt aufgerufen wird, und aus diesem Grund gibt es Probleme mit einem Code, auch wenn keine benutzerdefinierte Zeichnung erstellt wird.

Lösungen (beim benutzerdefinierten Zeichnen):

  1. Rufen Sie nicht drawRect:direkt an, verwenden Sie [view setNeedsDisplay]oder wenn Sie sofort zeichnen möchten[view.layer draw]
  2. In Ihrem drawRect:erhalten Sie den Kontext, aber verwenden Sie ihn nicht außerhalb des Körpers dieser if-Anweisungif (context) {<do drawing here>}
Jamone
quelle
2

Wenn Sie das automatische Layout in der betroffenen Ansicht deaktivieren, wird dieser Fehler in einigen Fällen behoben, in denen Sie Benutzeroberflächenelemente (insbesondere benutzerdefinierte Elemente, die programmgesteuert gezeichnet werden) in einer Ansicht platzieren und verschieben. Ich habe JVFloatLabeledTextField verwendet, als ich dieses Symptom entdeckte.

JuJoDi
quelle
2

In einigen Fällen müssen Sie möglicherweise die Zeile einfügen #import <QuartzCore/QuartzCore.h>.

Nagarjun
quelle
2

Ich habe diesen Fehler in der drawInContext (..) -Methode meiner benutzerdefinierten CALayer-Implementierung erhalten. UIBezierPath versucht, den UIGraphicsGetCurrentContext () zu verwenden, der in einer benutzerdefinierten Ebene standardmäßig Null ist. Die Online-Dokumentation erklärt dies sehr deutlich -

Wenn Sie jedoch kein UIView-Objekt zum Zeichnen verwenden, müssen Sie mithilfe der UIGraphicsPushContext-Funktion manuell einen gültigen Kontext auf den Stapel übertragen.

Hier ist der Code, der endlich mit meinen Kommentaren inline funktioniert hat (Swift-Code, aber die Lösung ist trotzdem dieselbe)

override func drawInContext(ctx: CGContext!) {  
    var path = UIBezierPath()

    // 1. Make sure you push the CGContext that was first passed into you.
    UIGraphicsPushContext(ctx)
    path.moveToPoint(CGPoint(x: 0, y: 0))
    path.addLineToPoint(CGPoint(x: 150, y: 150))
    var lineColor = UIColor.blueColor()
    lineColor.setStroke()
    path.lineWidth = 2
    path.stroke(
    // 2. Pop the context after you are done.
    UIGraphicsPopContext()
}
inder
quelle
2

In meinem Fall hatte ich diese Warnung, als ich ein veränderbares Bild mit Kappeneinsätzen erstellte. Das Problem war, dass ich nicht mindestens 1 Pixel im "nicht abgedeckten" Bereich belassen habe.

    UIImage *image = [UIImage imageNamed:@"name"];
    UIEdgeInsets edgeInsets = UIEdgeInsetsMake(20, 10, 20, 10);  //Problem here if the width is 20 or the height is 40
    image = [image resizableImageWithCapInsets:edgeInsets];
balkoth
quelle
1
Hatte genau das gleiche Problem. Anscheinend müssen Sie mindestens 1 Punkt des Bereichs verlassen, in dem sich das Bild dehnen kann
bis
1

Ich habe UIImage aus dem Kontext mit dem folgenden Code erstellt:

    UIGraphicsBeginImageContext (Größe);
    CGContextRef context = UIGraphicsGetCurrentContext ();

    CGContextSetFillColorWithColor (Kontext, Farbe.CGColor);
    CGContextFillRect (Kontext, (CGRect) {. Size = size});

    UIImage * image = UIGraphicsGetImageFromCurrentImageContext ();
    UIGraphicsEndImageContext ();

So bekam ich den Fehler.

Also habe ich den Inhalt der abgeleiteten Daten entfernt und meinen XCode neu gestartet. Und es hat funktioniert.

Treffen
quelle
Was ist dann die Lösung?
Geek
1
@Geek, aktualisierte Lösung. Entfernen Sie den DerivedData-Inhalt und starten Sie ihn neu.
Treffen Sie sich
1

Ich habe das gleiche Problem. In meinem Projekt habe ich versucht, ein Textfeld zu erstellen und es meiner PDF-Datei hinzuzufügen. Alter Code:

- (void) drawInContext:(CGContextRef)context {
    //Otherwise we're upside-down
    CGContextSetTextMatrix(context, CGAffineTransformMake(1.0,0.0, 0.0, -1.0, 0.0, 0.0));

    CGContextSetTextDrawingMode(context, kCGTextFill); // This is the default
    [[UIColor blackColor] setFill]; // ***This is the problem ***

    CGFloat x = self.rect.origin.x;
    CGFloat y = self.rect.origin.y + self.font.pointSize;
    [self.text drawAtPoint:CGPointMake(x, y)
            withAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Arial" size:12]}];
}

Nachdem dieses Problem behoben wurde, wurde der Code geändert:

old:[[UIColor blackColor] setFill]; 

new:CGContextSetFillColorWithColor(context, [[UIColor blackColor] CGColor]);

Ich habe festgestellt, dass die Lösung bei UIColor SetFill nicht funktioniert . Und danke dem Helfer.

Kate
quelle
1

Ich habe den Fehler mit dem Code bekommen

UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:pointA];
[path addLineToPoint:pointB];
[path addLineToPoint:pointC];
[[UIColor colorWithHexString:@"EFEFEF"] set];
[path fill];
[path closePath];

CAShapeLayer *triangle = [CAShapeLayer layer];
triangle.fillColor = [UIColor colorWithHexString:@"EFEFEF"].CGColor;
triangle.path = path.CGPath;

return triangle;

und nach dem Entfernen des Codes

[[UIColor colorWithHexString:@"EFEFEF"] set];
[path fill];

Die Welt wurde still

Wossoneri
quelle
0

Für mich war die Antwort, dass ich den Grafikkontext in unnötig freigegeben habe drawRect:. Das Setzen eines symbolischen Haltepunkts auf CGPostError hat mich auf den Täter hingewiesen.

Taylor Halliday
quelle
0

Habe diesen Fehler wie ich eingestellt hatte

textfield.delegate = self

Ohne eine der Delegatenroutinen zu implementieren. Das Entfernen dieser Zeile löste das Problem für mich

Daniel Åkesson
quelle
0

Ich hatte dieses Problem in einem UITextField, als ich die Berührung über ein leeres Feld mit nur Platzhaltertext hielt. Ich habe die folgende Problemumgehung verwendet, um leere Felder zu entfernen:

-(void)textFieldDidBeginEditing:(UITextField *)textField{

        textField.text=[@" " stringByAppendingString:textField.text];

        //other stuff here
}


-(BOOL)textFieldShouldReturn:(UITextField *)textField{

         if(textField.text.length>0){
             if([[textField.text substringToIndex:1] isEqualToString:@" "])
                 textField.text=[textField.text substringFromIndex:1];
         }
         //  other stuff here
}
Peter B. Kramer
quelle
0

Bei mir wurde dieser Fehler angezeigt, weil ich das CGContextRef wie unten gezeigt freigegeben habe:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    // DRAW BACKGROUND CIRCLE
    CGContextSetFillColorWithColor(context, [[UIColor gray] colorWithAlphaComponent:0.6].CGColor);
    CGContextFillEllipseInRect(context, rect);

//    CGContextRelease(context);
}

Durch Entfernen der Version wurde das Problem behoben

Kyle Redfearn
quelle
0

Ich habe es erhalten, als ich den Bildnamen in der activityImage-Methode in der UIActivity-Unterklasse falsch eingegeben habe

- (UIImage *)activityImage
{
    return [UIImage imageNamed:@"img.png"];
}

Die Eingabe des richtigen Bildes hat es für mich gelöst.

Saleh Albuga
quelle
0

Deinstallieren Sie die App vom Simulator und führen Sie sie erneut aus

Nagarjun
quelle
0

Wie andere, die hier kommentiert haben, erhielt ich diese Warnung, als ich eine der folgenden Aktionen ausführte:

In einem leeren Textfeld: Doppeltippen, Berühren und Halten, langes einfaches Tippen.

Dies scheint nur iOS 7.0.3 zu betreffen

Ich habe eine Problemumgehung festgestellt. Die Warnung wird nicht ausgelöst, wenn Ihr Pasteboard nicht NULL ist.

Also habe ich in textFieldDidBeginEditing Folgendes getan:

- (void)textFieldDidBeginEditing:(UITextField *)textField {

    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    if (pasteboard.string.length == 0) {

        pasteboard.string = @" ";

    }
}

Ich habe dies im Simulator für iOS 7.0.3 auf dem iPhone 4s, 5 und 5s getestet und erhalte keine Warnung mehr. Ich habe dies auch im Simulator für iOS 8 auf dem iPhone 6 und 6 plus getestet, aber ich glaube nicht, dass iOS 8 betroffen ist.

Ich war zwei Tage lang frustriert, bevor ich diese Arbeit entdeckte, und hoffe, dass meine Antwort denjenigen von Ihnen hilft, die das gleiche Problem haben.

RS-232
quelle
0

Wenn der Fehler auftritt, wenn Sie UIBezierPath verwenden und die Farbe für Strich oder Füllung festlegen, setzen Sie den festgelegten Farbcode in die Funktion drawRect und nicht an anderen Stellen.

Chuyang
quelle
0

Das ist hacky, aber es hat bei mir funktioniert.

Ich richte das UIImageViewin den UITableViewCellein init, gebe ihm eine Größe und Einschränkungen.

Dann cellForRowAtIndexPathmache ich in meinen View Controllern Folgendes:

let img = PFImageView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
img.setImage(withFile: nil, defaultText: message.senderUsername)
cell.profileImageView?.image = img.image

Und das vermeidet den Fehler, dann stelle ich darunter in der Funktion das eigentliche Bild dafür ein UIImageView. Der obige Code ist eine gute Standardeinstellung

Zack Shapiro
quelle