gpt4 book ai didi

ios - 带有服务器数据的 UIcollectionview

转载 作者:行者123 更新时间:2023-11-28 14:31:02 25 4
gpt4 key购买 nike

我正在尝试使用服务器数据创建 collectionview 我在一个数组并打印它以确保返回数据

    extension ViewController : DataModelDelegate {


func didRecieveDataUpdate(data: Data) {

let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])

// parse json array
guard let jsonArray = responseJSON as? [[String: Any]]
else {
return
}
for dic in jsonArray {
self.listOfCategories.append(MCategories(dic))
}
print(self.listOfCategories[1].Name)
print(self.listOfCategories.count)

}

但是这个数组在 collectionview() > int func 中返回了 0

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
print(self.listOfCategories.count)
return listOfCategories.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cellcategory:CVC_Categories = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CVC_Categories
cellcategory.setCategoryData(categories: listOfCategories[indexPath.row])
return cellcategory
}

我在 viewdidload() 中调用这个委托(delegate)

 var listOfCategories = [MCategories]()

override func viewDidLoad() {
super.viewDidLoad()
gettoken()
self.dataModel.delegate = self
dataModel.requestData()
cv_categories.delegate = self
cv_categories.dataSource = self

}

最佳答案

收到数据后,您需要将数据已更改的信息告知 Collection View 。您可以通过在 Collection View 上调用 reloadData() 来做到这一点。

因此,在您的情况下:

  func didRecieveDataUpdate(data: Data) {

....

OperationQueue.main.async {
self.collectionView.reloadData()
}

}

关于ios - 带有服务器数据的 UIcollectionview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51264595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com