Das Aktualisieren des Labels dauert zu lange (schnell)

8

Ich bin Anfänger, schneller Entwickler. Ich bin mit dieser Wetter-App festgefahren. Ich lade Website-Daten herunter und zeige sie dann in meinem Etikett an.

Leider dauert dieser ganze Vorgang 10 Sekunden, um mein Label zu aktualisieren.

Dies liegt wahrscheinlich nicht an der Netzwerkverbindung, da die Konsole sofort aktualisiert wird.

Danke für Anregungen.

    
selez 24.09.2014, 09:50
quelle

4 Antworten

12

Was passiert, ist, dass Code wahrscheinlich in einem sekundären Thread ausgeführt wird. Alle UI-Änderungen, die Sie vornehmen, sollten im Hauptthread vorgenommen werden. Versuchen Sie es also:

%Vor%

Dies sollte Ihr Etikett sofort aktualisieren.

    
Mihai Fratu 24.09.2014, 09:54
quelle
6

Früher würden wir die Versandmethode (sync vs async) wählen und dann die Warteschlange, in die wir unsere Aufgabe schicken wollten. Der aktualisierte GCD kehrt diese Reihenfolge um - wir wählen zuerst die Warteschlange und wenden dann eine Versandmethode an.

  

Schnell 3 :

Jetzt in Swift 3 wurde die GCD-Bibliothek wie folgt aktualisiert:

%Vor%

Ich hoffe, das hilft Ihnen.

    
Victor Sigler 22.07.2016 03:50
quelle
0
___ qstntxt ___

Ich bin Anfänger, schneller Entwickler. Ich bin mit dieser Wetter-App festgefahren. Ich lade Website-Daten herunter und zeige sie dann in meinem Etikett an.

Leider dauert dieser ganze Vorgang 10 Sekunden, um mein Label zu aktualisieren.

Dies liegt wahrscheinlich nicht an der Netzwerkverbindung, da die Konsole sofort aktualisiert wird.

Danke für Anregungen.

    
___ qstnhdr ___ Das Aktualisieren des Labels dauert zu lange (schnell) ___ answer38517860 ___

Früher würden wir die Versandmethode (sync vs async) wählen und dann die Warteschlange, in die wir unsere Aufgabe schicken wollten. Der aktualisierte GCD kehrt diese Reihenfolge um - wir wählen zuerst die Warteschlange und wenden dann eine Versandmethode an.

  

Schnell 3 :

Jetzt in Swift 3 wurde die GCD-Bibliothek wie folgt aktualisiert:

%Vor%

Ich hoffe, das hilft Ihnen.

    
___ antwort43765939 ___

Es könnte zu spät sein zu antworten, aber in Swift 3 sollte die Logik so sein.

%Vor%     
___ answer45868102 ___

Ihr Code hat mehrere Probleme.

FIRST: Es hat einen starken Referenzzyklus

Fix es, indem Sie dies in Schließung.

%Vor%

ZWEITE: Update UI im Haupt-Thread

%Vor%     
___ tag123ios ___ iOS ist das mobile Betriebssystem, das auf dem Apple iPhone, iPod touch und iPad ausgeführt wird. Verwenden Sie dieses Tag [ios] für Fragen zur Programmierung auf der iOS-Plattform. Verwenden Sie die verwandten Tags [objective-c] und [swift] für Probleme, die für diese Programmiersprachen spezifisch sind. ___ tag123xcode ___ Xcode ist Apples integrierte Entwicklungsumgebung (IDE). NUTZUNGSHINWEIS: Verwenden Sie dieses Tag nur für Fragen zur Xcode-IDE selbst und nicht für allgemeine Mac- oder iOS-Programmierungsthemen. Verwenden Sie [Kakao] für Mac-Programmierfragen und [Kakaotouch] oder [ios] oder [Swift] für iOS-Programmierfragen. ___ tag123swift ___ Swift ist eine universelle Open-Source-Programmiersprache, die von Apple Inc. für ihre Plattformen und Linux entwickelt wurde. Verwenden Sie das Tag nur für Fragen zu Sprachfunktionen oder für Code in Swift. Verwenden Sie die Tags [ios], [osx], [watch-os], [tvos], [cocoa-touch] und [cocoa] für (sprachunabhängige) Fragen zu den Plattformen oder Frameworks. ___ answer26013902 ___

Was passiert, ist, dass Code wahrscheinlich in einem sekundären Thread ausgeführt wird. Alle UI-Änderungen, die Sie vornehmen, sollten im Hauptthread vorgenommen werden. Versuchen Sie es also:

%Vor%

Dies sollte Ihr Etikett sofort aktualisieren.

    
___
NGR 03.05.2017 16:55
quelle
0

Ihr Code hat mehrere Probleme.

FIRST: Es hat einen starken Referenzzyklus

Fix es, indem Sie dies in Schließung.

%Vor%

ZWEITE: Update UI im Haupt-Thread

%Vor%     
user2096064 24.08.2017 17:55
quelle

Tags und Links