Pull-to-refresh修改数组值?

f_q*_*_qi 7 arrays uitableview ios pull-to-refresh swift

我正在使用Swift进行iOS上的pull-to-refresh.
我有一个带有城市名称的数组,cityNames = ["Chicago", "New York City"]
我实现了一个pull-to-refresh来从互联网上获取温度数据.因此,每当我触发拉动刷新时,它将进入互联网并获得cityNames阵列中每个城市的温度.
这是pull-to-refresh的代码

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()
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,weatherDetail是一个模型数组(我不知道如何用这句话,但是Weather是一个模型,其中包含城市名称,温度,太阳升起时间,高/低温度.
forwardGeocoding是一个获得地理协调的函数对于一个城市然后发送请求获取该城市的天气数据.
拉动刷新工作,我遇到的问题是,我拉的前2,3次,它没有问题.但是当我拉多次时,阵列会突然改变为cityNames = ["Chicago", "Chicago"]
感谢您的帮助,如果您需要更多信息,请告诉我.
更新:
我删除了weatherDetail.removeAll(),尝试将相同的数据附加到阵列.刷新后,打印出来"Chicago", "New York City", "Chicago", "Chicago".如果我刷新多次,它打印出像"Chicago", "New York City", "Chicago", "Chicago", "Chicago", "Chicago"

Mic*_*ael 5

forwardGeocoding是同步的吗?weatherDetail什么时候设置/更新?

在我看来,你在这里遇到某种同步性问题,可能会因延迟而加剧.