2016-05-13 15 views
2

Ich habe eine UIProgressView, die verwendet wird, um dem Benutzer den Fortschritt eines Dateidownloads anzuzeigen. Die Downloadanforderung wird in einem Hintergrundthread ausgeführt, und im Fortschrittsblock wird die UIProgressView Fortschrittswertaktualisierung für den Hauptthread aufgerufen.UIProgressView Update Lag

Es funktioniert gut zu rund 40%, aber dann hängt es und schnell auf rund 100% angezeigt und die benutzerdefinierte Warnung schließt (wie es sollte). Ich habe es mehrmals versucht, aber ich kann es nicht auf 100% reibungslos aktualisieren.

Ich habe auch eine Abbrechen-Taste, die mir aufgefallen ist, dass es auf Armaturen in diesem 40% - 100% Bereich nicht reagiert. Irgendwie wird der Haupt-Thread blockiert. Denn im Bereich 0% - 40% funktioniert die Cancel-Taste perfekt. Ich bin mir sehr sicher, dass ich den Hauptthread nicht mit dem Dateidownload blockiere und dass das UIProgressView Update auf dem Hauptthread erfolgt.

Was könnte das Problem sein?

Antwort

2

Ich endlich herausgefunden, warum. Es war, weil ich einen NSLog Aufruf im Fortschrittsblock hatte, der ziemlich viel genannt wurde.

Ich verstehe immer noch nicht, warum es das getan hat, und warum konstant bei etwa 40%, aber ich denke, es ist keine gute Idee, es dennoch in der Produktion zu haben.