我正在使用
Swift进行iOS上的pull-to-refresh.
我有一个城市名称的数组,cityNames = [“芝加哥”,“纽约市”]
我实现了一个pull-to-refresh来从互联网上获取温度数据.因此,每当我触发pull-to-refresh时,它将进入互联网并获取cityNames数组中每个城市的温度.
这是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什么时候设置/更新?
weatherDetail什么时候设置/更新?
在我看来,你在这里遇到某种同步性问题,可能会因延迟而加剧.