Ios 几秒钟后刷新Alamofire请求无法正常工作 我在viewdidload中使用了计时器和选择器功能
例如Ios 几秒钟后刷新Alamofire请求无法正常工作 我在viewdidload中使用了计时器和选择器功能,ios,swift,alamofire,Ios,Swift,Alamofire,例如 getRequest()用于使用alamofire进行json解析,并使用集合视图填充数据 计时器和函数可以正常运行,但需要连续地将json数据追加到数组中。在视图集合上,视图数据连续出现 我只想在几秒钟后刷新Alamofire请求,但不想刷新整个函数,因为json数据会被推送到数组和字典中 我的getRequest()code: func getRequest() { let getUserID :UserDefaults = UserDefaults.standard
getRequest()
用于使用alamofire进行json解析,并使用集合视图填充数据getRequest()
code:
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)")
}
}
func getRequest(){
让getUserID:UserDefaults=UserDefaults.standard
let参数:参数=[
“user\u id”:getUserID.value(forKey:“user\u id”)!
]
请求(URL_字符串,方法:.post,参数:parameters).responseJSON{
(答复)在
打印(“url:\(response.request)”)
guard response.result.isSuccess else{
打印(“块1”)
打印(“响应:\(响应)”)
打印(“响应错误:\(字符串(描述:response.result.Error)))
返回
}
guard let dict=response.result.value as?Dictionary
否则{
打印(“响应:\(响应)”)
打印(“字典错误:\(字符串(描述:response.result.Error)))
返回
}
guard let dictData=dict[“message”]作为?[Dictionary]其他{
打印(“字典数据错误:\(字符串(描述:response.result.Error)))
返回
}
对于dictData中的数据{
self.lawNameArray.append(数据[“title”]作为!字符串)
self.lawmagearray.append(数据[“law_images”]as!字符串)
self.dataArray.append(数据[“title”]作为!字符串)
打印(“lawnamerarray………\(self.lawnamerarray)”)
打印(“lawImageArray………\(self.lawImageArray)”)
self.lawidaray.append(数据[“law_id”]as!字符串)
self.lawStatusArray.append(数据[“状态”]为!字符串)
打印(“法律Id数组:\(self.lawidaray)”)
打印(“数据数组:\(self.dataArray)”)
}
self.myActivityIndicator.stopAnimating()
self.myActivityIndicator.hidesWhenStopped=true
self.collectionView.reloadData()
打印(“dict数据\(dictData)”)
}
}
我想您需要在添加新数据之前清空数组,因此您可以在for循环之前添加以下代码:
self.lawNameArray.removeAll()
self.lawImageArray.removeAll()
self.dataArray.removeAll()
self.lawIdArray.removeAll()
self.lawStatusArray.removeAll()
谢谢@Moayad Al-Kouz。这个解决方案解决了我的问题。太好了!!很抱歉,我无法投票支持bcoz声誉低于15@Moayad Al-Kouz
self.lawNameArray.removeAll()
self.lawImageArray.removeAll()
self.dataArray.removeAll()
self.lawIdArray.removeAll()
self.lawStatusArray.removeAll()