Ich arbeite an einem Pull-to-Refresh auf iOS mit Swift.
Ich habe ein Array mit Städtenamen, cityNames = ["Chicago", "New York City"]
Ich implementiert eine Pull-to-Refresh, um Temperaturdaten aus dem Internet zu holen. Jedes Mal, wenn ich die Pull-to-Refresh-Funktion triggere, wird es ins Internet gehen und die Temperatur für jede Stadt im cityNames
Array abrufen.
Hier ist der Code für Pull-to-Refresh
Pull-to-refresh ändert Array-Wert?
var weatherDetail = [Weather]()
// Pull to refresh
func refreshData() {
var cityNames = [String]()
for (index, _) in weatherDetail.enumerate() {
let info = weatherDetail[index]
cityNames.append(info.cityName)
}
print(cityNames)
weatherDetail.removeAll()
for city in cityNames {
self.forwardGeocoding(city)
}
weatherCityTable.reloadData()
refreshControl.endRefreshing()
}
In dem obigen Code, weatherDetail
eine Reihe von Modell ist (ich bin nicht sicher, wie dieser Begriff, aber Weather
ist ein Modell, das enthält Stadtnamen, Temperatur, Sonnenaufgangszeit, hohe/niedrige Temperatur
forwardGeocoding
ist eine Funktion, die die Geokoordination für eine Stadt erhält, die dann eine Anfrage sendet, um die Wetterdaten für diese Stadt zu erhalten
Die Pull-to-Refresh-Funktion Das Problem, auf das ich stoße, ist für die ersten 2,3 Male, wenn ich ziehe, es funktioniert ohne Problem. Aber wie ich öfter ziehe, wird das Array plötzlich zuwechseln
Vielen Dank für Ihre Hilfe, bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. UPDATE:
Ich entfernte weatherDetail.removeAll()
, versuchen Sie, nur die gleichen Daten an das Array anzuhängen. Nach der Aktualisierung wird "Chicago", "New York City", "Chicago", "Chicago"
ausgedruckt. Wenn ich es mehrmals aktualisiere, wird etwas wie "Chicago", "New York City", "Chicago", "Chicago", "Chicago", "Chicago"
Das Array cityNames befindet sich nicht in Ihrem Code. Wie ist es gefüllt? – Darko
@Darko Vielen Dank für den Hinweis, nur den Code geändert. –
Ein Problem, das aus dem angegebenen Code ersichtlich ist: Sie fügen nur cityNames hinzu, löschen es aber nie. – Darko