【问题标题】:fatal error: Index out of range when refreshing Collection View致命错误:刷新集合视图时索引超出范围
【发布时间】:2020-01-16 19:12:32
【问题描述】:

我添加了一个刷新 UICollectionView 的拉动功能,但即使我尝试了很多方法,我也会遇到同样的错误。

UICollectionView 工作正常。pull 刷新也工作正常,但如果我反复拉,我会收到此错误。

致命错误:索引超出范围

该功能在完全完成之前不应再次工作?

我该如何解决这个问题?

    func veriCek(){

        var tempOrdersList = [HomeFeedVideo]()

        self.posts.removeAll()
        tempOrdersList.removeAll()

        Alamofire.request("**************************", method: .post, parameters: parameters).validate().responseJSON { response in
            switch response.result {
            case .success:
                //print(response.data!)
                if let result = response.result.value {
                    let json = result as! NSDictionary
                    //print(json)

                    let dataArray = json["sonuclar"] as! NSArray;

                    print("Data items count: \(dataArray.count)")
                    for item in dataArray { // loop through data items

                       // ... some code

                        let post = HomeFeedVideo(artistName: artistName, commentlikes: commentlikes, likeStatus: likeStatus, name: name, profilePics: profilePics, time: time, userID: userID, username: username, videoContent: videoContent, videoID: videoID, videoLikes: videoLikes, videoName: videoName, videoPath: videoPath, view: view, status: groupStatus, groupResponse: groupRes, thumbnail: thumbnail)
                        tempOrdersList.append(post)

                    }

                    DispatchQueue.main.async {
                        self.posts = tempOrdersList
                        self.user = User(dictionary: json as! [String : Any])
                        self.navigationItem.title = self.user?.username
                        self.playerCollect?.reloadData()
                        self.refreshControl.endRefreshing()
                    }
                }
            case .failure(let error):
                print(error)
            }
        }        
    }

【问题讨论】:

  • 请发布所有错误信息。
  • @mussaCharles 所有错误消息 = 致命错误:索引超出范围 2019-09-16 05:50:02.554997+0300 appname [52904:858042] 致命错误:索引超出范围
  • 检查我的答案,如果没有解决,请分享您的 dataSource 方法。

标签: swift uicollectionview fatal-error pull-to-refresh indexoutofrangeexception


【解决方案1】:

我认为您在 collectionView 数据源方法中遇到了错误 cellForItemAt(indexPath:) 方法。您可能会在删除数据时尝试设置单元格帖子。如果您分享您的 dataSource 实现,我可能会找到问题所在。仅当您的数据不为空时才尝试设置帖子。

在 cellForItemAt 方法中添加这个检查:-

if !posts.isEmpty {
// TODO: - Set your cell's post
}

【讨论】:

  • 很高兴我能帮上忙,快乐编码:)
猜你喜欢
  • 2017-04-03
  • 2023-03-24
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
相关资源
最近更新 更多