Sto lavorando a un pull-to-refresh su iOS con Swift.
Ho un array con i nomi di città, cityNames = ["Chicago", "New York City"]
Ho implementato un pull-to-refresh per recuperare i dati di temperatura da Internet. Quindi ogni volta che faccio scattare il pull-to-refresh, andrà su Internet e otterrà la temperatura per ogni città nell'array cityNames
.
Qui è il codice per pull-a-refresh
Pull-to-refresh modifica il valore dell'array?
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()
}
Nel codice precedente, weatherDetail
è una gamma di modelli (io non sono sicuro di come frase, ma Weather
è un modello, che contiene nomi di città, temperatura, tempo di innalzamento del sole, temperatura alta/bassa
forwardGeocoding
è una funzione che ottiene il coordinamento geografico di una città, quindi invia una richiesta per ottenere i dati meteorologici per quella città
I lavori di pull-to-refresh , il problema che sto incontrando è, per le prime 2,3 volte in cui tiro, funziona senza problemi, ma mentre tiro più volte, la matrice cambierà improvvisamente in cityNames = ["Chicago", "Chicago"]
Grazie per il vostro aiuto, per favore fatemi sapere se avete bisogno di ulteriori informazioni.
UPDATE:
Ho rimosso weatherDetail.removeAll()
, provare ad aggiungere gli stessi dati all'array. Dopo l'aggiornamento, stampa "Chicago", "New York City", "Chicago", "Chicago"
. Se lo aggiorno più volte, stampa qualcosa come "Chicago", "New York City", "Chicago", "Chicago", "Chicago", "Chicago"
L'array cityNames non è nel codice. Come è riempito? – Darko
@Darko Grazie per il punto, ho appena modificato il codice. –
Un problema che è visibile dal codice dato: stai semplicemente accedendo a cityNames ma non lo elimini mai. – Darko