ios – Pull-to-refresh修改数组值?

前端之家收集整理的这篇文章主要介绍了ios – Pull-to-refresh修改数组值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 Swift进行iOS上的pull-to-refresh.
我有一个城市名称的数组,cityNames = [“芝加哥”,“纽约市”]
我实现了一个pull-to-refresh来从互联网上获取温度数据.因此,每当我触发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()
}

在上面的代码中,weatherDetail是一个模型数组(我不知道该怎么说这个,但Weather是一个模型,它包含城市名称,温度,太阳升起时间,高/低温度.
forwardGeocoding是一个获取城市地理协调的功能,然后发送请求以获取该城市的天气数据.
拉动刷新工作,我遇到的问题是,当我拉动时的前2,3次,它没有问题.但随着我拉多次,阵列将突然变为cityNames = [“芝加哥”,“芝加哥”]
感谢您的帮助,如果您需要更多信息,请与我们联系.

更新:
删除了weatherDetail.removeAll(),尝试将相同的数据附加到数组中.刷新后,它打印出“芝加哥”,“纽约市”,“芝加哥”,“芝加哥”.如果我刷新它多次,它会打印出类似“芝加哥”,“芝加哥”的东西.

解决方法

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

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

原文链接:https://www.f2er.com/iOS/332558.html

猜你在找的iOS相关文章