У меня есть представление коллекции, которое перезагружается после получения данных из api. У меня есть условие, что когда счетчик массива больше нуля, он должен перезагрузить представление коллекции. Код приведен ниже:
if self.mainarray.count>0
{
self.collectionview1.reloadData()
}
Если счетчик основного массива равен 2, то он перезагружает представление коллекции, когда счетчик сам по себе равен 1. Как заставить его перезагружаться только при получении полных данных?
func getcart() {
print("getcart function",self.token)
let headers: HTTPHeaders = [
"Content-Type":"application/json",
"Authorization":"Bearer "+self.token!
]
AF.request("https:XXXX", method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers).responseJSON { response in
switch response.result {
case .success(let json):
// print("Validation Successful",json)
if let res = json as? [[String: Any]]{
print("res count is",res.count)
self.skuarray.removeAll()
for item in 0..<res.count
{
self.sku = res[item]["name"] as! String
self.skuarray.append(self.sku!)
let qty:Double = res[item]["qty"] as! Double
}
if self.skuarray.count > 0
{
for i in 0..<self.skuarray.count
{
self.getimage(sku:self.skuarray[i])
}
}
}
else
{
self.showAlert(message: "No products in the cart")
}
case let .failure(error):
print(error)
}
}
}
func getimage(sku: String)
{
AF.request("https:XXXXXX" + sku, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { response in
//New
let decoder = JSONDecoder()
do {
let user = try decoder.decode(ProductDetailDataModel.self, from: response.data!)
self.detailmodel = user
// self.orgsearchDataModel = user
DispatchQueue.main.async
{
self.doLabelChange()
print("total images aree",self.mainarray)
if !self.mainarray.isEmpty
{
self.tableview1.reloadData()
}
}
} catch {
print(error.localizedDescription)
}
}
}
func doLabelChange(){
let sku = UserDefaults.standard.set((self.detailmodel?.sku)!, forKey: "sku")
let array = self.detailmodel?.mediaGalleryEntries
print("array is",array)
let image = array![0].file
print("image is ",image)
let imageurl = "https://adamas-intl.com/pub/media/catalog/product/" + image
print("imageurl is",imageurl)
self.mainarray.append(imageurl)
}