gpt4 book ai didi

ios - 在异步加载中重新加载数据

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

我已经在我的 swift 项目中实现了异步图像加载,以在表格的单元格中加载一系列图像。

我已经用下面的扩展完成了

extension UIImageView {
public func imageFromServerURL(urlString: String, defaultImage : String?) {
if let di = defaultImage {
self.image = UIImage(named: di)
}

URLSession.shared.dataTask(with: NSURL(string: urlString)! as URL, completionHandler: { (data, response, error) -> Void in

if error != nil {
print(error ?? "error")
return
}
DispatchQueue.main.async(execute: { () -> Void in
let image = UIImage(data: data!)
self.image = image

})

}).resume()
}
}

我通过声明一个实例方法来调用方法

let imageView = UIImageView()

稍后在我的代码中运行它。

cell.posterImageView!.image = UIImage(imageView.imageFromServerURL(urlString: posterImageURL as! String ,defaultImage: "noPosterImage.png" ))

除了在我将图像滚动出 View 然后将其滚动回 View 之前,图像不会在我的表格中更新外,这主要有效。

经过我自己的研究,我发现这个方法似乎对我有帮助

self.tableview.reloadData()

当我试图在我的扩展中像这样将它实现到我的代码中时

DispatchQueue.main.async(execute: { () -> Void in
let image = UIImage(data: data!)
self.image = image
self.tableview.reloadData()
})

我收到错误

Value of type 'UIImageView' has no member 'tableview'

我是 swift 的新手,所以我不太确定如何解决这个错误,我敢肯定这是一件非常简单的事情

关于如何修复此错误或简单地整体修复问题的任何建议?

最佳答案

您通常使用 IBOutlets 将 Storyboard中的 View 连接到您的 UIViewController。在您的情况下,您会将 Storyboard 中的 tableView 连接到右舷中拥有 UIViewController 实例的 viewController。

然后您可以在 viewController 中调用 tableView.reload() 来重新加载表格。

无法从 Storyboard连接到 imageView,因此您无法将 tableView 连接到您的自定义 UIImageView 类。

阅读 IBOutlets , Storyboards供您完成。

关于ios - 在异步加载中重新加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51676585/

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