- 我在带有选择器功能的viewdidload中使用了timer
例如。
var timer = Timer.scheduledTimer(timeInterval: 0.4, target: self,selector: #selector(HomeViewController.getRequest), userInfo: nil, repeats: true)
getRequest()
用于alamofire解析json并使用collection view填充数据计时器和功能正常运行,但 json 数据连续附加到数组中。在 View Collection View 中不断出现数据。
我只想在几秒钟后刷新 Alamofire 请求而不是整个函数,因为 json 数据被推送到数组和字典中。
我的 getRequest()
代码:
func getRequest() {
let getUserID :UserDefaults = UserDefaults.standard
let parameters: Parameters = [
"user_id" : getUserID.value(forKey: "user_id")!
]
Alamofire.request(URL_String, method: .post, parameters: parameters).responseJSON{
(response) in
print(" url :\(response.request)")
guard response.result.isSuccess else {
print("Block 1 ")
print(" response :\(response)")
print("Error with response: \(String(describing: response.result.error))")
return
}
guard let dict = response.result.value as? Dictionary <String,AnyObject>
else {
print(" response :\(response)")
print("Error with dictionary: \(String(describing: response.result.error))")
return
}
guard let dictData = dict["message"] as? [Dictionary <String,AnyObject>] else {
print("Error with dictionary data: \(String(describing: response.result.error))")
return
}
for data in dictData{
self.lawNameArray.append(data["title"] as! String)
self.lawImageArray.append(data["law_images"] as! String)
self.dataArray.append(data["title"] as! String)
print("lawNameArray..............\(self.lawNameArray)")
print("lawImageArray..............\(self.lawImageArray)")
self.lawIdArray.append(data["law_id"] as! String)
self.lawStatusArray.append(data["status"] as! String)
print("law Id Array :\(self.lawIdArray)")
print("Data array :\(self.dataArray)")
}
self.myActivityIndicator.stopAnimating()
self.myActivityIndicator.hidesWhenStopped = true
self.collectionView.reloadData()
print(" dict data\(dictData)")
}
}
最佳答案
我猜你需要在添加新数据之前清空数组,所以你可以在 for 循环之前添加以下代码:
self.lawNameArray.removeAll()
self.lawImageArray.removeAll()
self.dataArray.removeAll()
self.lawIdArray.removeAll()
self.lawStatusArray.removeAll()
关于ios - 几秒钟后无法正常工作后刷新 Alamofire 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49011162/