Ios 阿拉莫菲尔,正在下载多幅图像
我正在尝试从url下载一个图像,并使其成为表视图中每个单元格的tableviewcell图像。程序下载每个单元格的内容,然后根据从服务器传入的id值使用alamofire下载图像 当我使用下面的代码时,第一个图像总是与第二个图像相同,我不明白为什么,当我添加更多的单元格时,它们工作得很好。我今天才开始使用alamofire,所以我可能遗漏了一些明显的东西,如果是这样的话,请提前道歉Ios 阿拉莫菲尔,正在下载多幅图像,ios,swift,alamofire,Ios,Swift,Alamofire,我正在尝试从url下载一个图像,并使其成为表视图中每个单元格的tableviewcell图像。程序下载每个单元格的内容,然后根据从服务器传入的id值使用alamofire下载图像 当我使用下面的代码时,第一个图像总是与第二个图像相同,我不明白为什么,当我添加更多的单元格时,它们工作得很好。我今天才开始使用alamofire,所以我可能遗漏了一些明显的东西,如果是这样的话,请提前道歉 for result in resultsAsArray { if l
for result in resultsAsArray {
if let resultDict = result as? NSDictionary {
let cell = UITableViewCell(style: .Value1, reuseIdentifier: "identifer")
cell.textLabel?.text = resultDict.objectForKey("name") as? String
let id = (resultDict.objectForKey("productId") as! String).toInt()!
cell.tag = id
cell.imageView?.image = UIImage(named: "placeholder")
let image = request(.GET,
"http://www.website.com/\(id).png").response() {
(_, _, data, _) in
println("loading image for \(id)")
let image = UIImage(data: data! as NSData)
cell.imageView!.image = image
}
products.append(cell)
(view.viewWithTag(1) as! UITableView).reloadData()
}
}
我已经确定问题出在服务器端,当我更改图像时,它们不会立即在服务器上更改-alamofire工作正常
- 我最初将第一个单元格图像设置为应该用于数字2的图像,在我移动它之后,alamofire缓存了它,因此它始终显示用于数字2的图像
- 我最初将第一个单元格图像设置为应该用于数字2的图像,在我移动它之后,alamofire缓存了它,因此它始终显示用于数字2的图像
cellforrowatinedexpath
中,您应该将单元格排在队列之外,而不是实例化自己的单元格。通常人们会使用延迟加载图像,而不是加载整个表的所有图像(为每个表重新加载)。好的,谢谢你,我总是试图使代码尽可能“正确”,所以我会进行这些更改。另外,当我从服务器中删除所有图像时,它们仍在应用程序中加载-可能是服务器端的问题?顺便说一句,整个方法是倒退的。您不应该使用图像构建单元格数组。您应该实例化单元格的唯一位置是在cellforrowatinedexpath
中,您应该将单元格排在队列之外,而不是实例化自己的单元格。通常人们会使用延迟加载图像,而不是加载整个表的所有图像(为每个表重新加载)。好的,谢谢你,我一直在努力使代码尽可能“正确”,所以我会进行这些更改。