gpt4 book ai didi

Swift Index 在 cellForRowAtIndexPath 处超出范围,两次调用 getDataInBackground

转载 作者:行者123 更新时间:2023-11-28 08:13:01 25 4
gpt4 key购买 nike

我遇到了一个问题,我的应用程序崩溃并给出索引超出范围错误,但是在我消除了在后台获取 imageFiles 的功能之后,imageFiles[indexPath.row].getDataInBackground tableView 运行正常。我认为问题是两个 getDataInBackground 调用混淆了它。

但是,我仍然需要下载 imageFiles 的数据,所以我想知道是否有人可以解决我如何在 cellForRowAtIndexPath 中执行此操作。非常感谢任何帮助:)

   override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "userPhotoFeedCell", for: indexPath) as! FeedCell

if PFUser.current()?.objectId != nil {

cell.userUsername.text = PFUser.current()?.username

}


//downloades images and items to populate user post
postImageFiles[indexPath.row].getDataInBackground { (data, error) in

if let userPostImageData = data {

let downloadedUserPostImage = UIImage(data: userPostImageData)

cell.userFeedPhoto.image = downloadedUserPostImage

}


}

/* IF THIS ISN't COMMENTED APP GIVES INDEX OUT OF RANGE CRASH
//downloads images for user profile pic
imageFiles[indexPath.row].getDataInBackground { (data, error) in

if let imageData = data {

let downloadedImage = UIImage(data: imageData)

cell.userProfilePic.image = downloadedImage

}


}
*/

cell.postLocation.text = postLocation[indexPath.row]

cell.postCaption.text = postCaptions[indexPath.row]

cell.userFeedPhoto.image = UIImage(named: "OrangeFuego")

cell.userProfilePic.image = UIImage(named: "usericon.png")

return cell

}

最佳答案

如果可以使用 URL 加载图像,您可以使用 SDWebImage 库,它会在后台下载图像,也可以选择设置占位符图像,直到获取原始图像。它还提供了用于缓存图像的选项。这是图书馆的链接: https://github.com/rs/SDWebImage

关于Swift Index 在 cellForRowAtIndexPath 处超出范围,两次调用 getDataInBackground,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43245259/

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