Im, пытающийся загрузить изображение с URL-адреса и сделать его образ tableviewcell для каждой ячейки в виде таблицы. Программа загружает содержимое каждой ячейки, а затем использует alamofire для загрузки изображения в соответствии с идентификатором, переданным с сервера.alamofire, загружая несколько изображений
Когда я использую код ниже, первое изображение всегда совпадает со вторым, и я не могу понять, почему, когда я добавляю больше ячеек, они работают отлично. Я только начал использовать alamofire сегодня, поэтому я, возможно, пропустил что-то очевидное, извините заранее, если это так.
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()
}
}
Также, когда я удаляю все изображения с моего сервера, они все еще загружаются в app - возможно, проблема связана с сервером? –
В целом, весь этот подход обратный. Вы не должны создавать массив ячеек с изображениями. Единственное место, где вы должны создавать экземпляры ячеек, - это «cellForRowAtIndexPath», и вы должны деактивировать ячейки, а не создавать свои собственные. И обычно люди будут использовать ленивую загрузку изображений, а не загружать все изображения для всей таблицы (перезагрузка таблицы для каждого). – Rob
ладно, спасибо, я всегда старался сделать код «правильным», насколько это возможно, так что делайте эти изменения. –