Ich denke, der richtige Weg, es zu benutzen, ist:
%Vor%Obwohl ich immer Probleme habe, das zu funktionieren: (
Nach vielen Tests habe ich etwas gesehen, das mit Threads zu tun hat und das fact setNeedsDisplay sollte nur in mainThread aufgerufen werden ... Außerdem habe ich in diesen Klassen nie einen separaten Thread gestartet, sondern die Klasse, die die Benachrichtigung ausgelöst hat, war in einem sekundären Thread ... und genau das verursachte das Problem ...
um es zu lösen Ich habe nur gezwungen, setNeedsDisplay im Hauptthread aufgerufen werden.
%Vor%Schnell 3:
%Vor%Ich habe viele Threads gesehen, die mit diesem Problem zu tun haben, aber keine behandelt meinen Fall (denke ich).
Mein Fall sollte einfach sein, ich habe eine benutzerdefinierte %code% in meinem Controller, von meinem Controller verwende ich die [ %code% ] und es funktioniert perfekt.
Ich habe Probleme, wenn ich versuche, dies innerhalb von %code% selbst aufzurufen ... Ich habe eine Benachrichtigung von einer anderen Klasse gesendet und sie wird von meiner Ansicht (das funktioniert) mit den Informationen empfangen es passiert, ich aktualisiere interne Eigenschaften dieser Ansicht und dann rufe ich die [self %code% ] an, die meinen Bildschirm mit den neuen Zuständen aktualisieren möchte, aber nichts passiert, ich habe ein %code% in meinem %code% verwendet Methode, und es wird nicht zu diesem Zeitpunkt aufgerufen, es wird nur aufgerufen, wenn meine Controller-Klasse %code% aufrufen, und wenn das passiert, wird das Update, das zuvor geschehen sollte, auf dem Bildschirm angezeigt ... Ich weiß es nicht warum es nicht vorher aktualisiert ...
Hier ist ein Code:
Mein Controller fragt nach Update: (funktioniert OK!)
%Vor%Meine Benachrichtigungsmethode, die versucht, meine Zeichnung zu aktualisieren: (funktioniert nicht!)
%Vor%Ich gebe hier nicht mein %code% ein, weil es funktioniert, das Problem ist, dass es nicht von meinem %code% aufgerufen wird!
Jeder hat eine Idee, warum das nicht funktioniert ????