【问题标题】:UICollectionview slow data reloadingUICollectionview 缓慢的数据重新加载
【发布时间】:2017-12-07 18:06:07
【问题描述】:

我提出一个请求,获取数据,将它们分成 10 个数组,大约需要 2 秒。但是将它们分类为UICollectionView 需要将近 10 秒才能显示数据。这是我的代码:

func makeRequest() {
    let url = URL(string: "https://api.example.com/v1/ticker/?start=" + "\(startingPoint)")
    let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
        if error != nil {
            print(error!)
        } else {
            if let urlContent = data {
                do {
                    let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: JSONSerialization.ReadingOptions.mutableContainers) as! [AnyObject]
                    var i: Int!
                    for i in 0..<jsonResult.count {
                        Global.rankArray.append(String(describing: jsonResult[i]["rank"]!!))
                        // 9 other similar lines 
                    }
                    // Loading some views
                    self.dataCollection.reloadData()
                } catch {
                    print("Error")
              }
            }
        }
    }
    task.resume()
}

所以我可以快速打印所有内容,但在 10 秒过去之前,UICollectionView 中没有显示任何数据。加载时间不依赖于互联网连接速度。

【问题讨论】:

    标签: arrays json swift uicollectionview


    【解决方案1】:

    问题是您正在后台线程上重新加载 UICollectionView。任何应该立即更新视图的东西都必须在主线程上运行。只需更改您的重新加载语句:

       DispatchQueue.main.async {
          self.dataCollection.reloadData()
       }
    

    【讨论】:

      猜你喜欢
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多