Когда я заполняю новые данные в своем контроллере tableView, моя верхняя ячейка перезаписывается нижней. Позволь мне объяснить. У меня есть одно изображение, которое загружается асинхронно в последней строке ячеек внизу. Все остальные ячейки загружаются статически с изображением, которое есть в приложении. Когда я прокручиваю свое приложение вниз и отображаю свою нижнюю ячейку, которая имеет изображение, отличное от других ячеек, и снова прокручиваю вверх, я вижу, что первое изображение магазина изменилось на динамическое, загруженное в нижнюю ячейку. Кто-нибудь знает, почему это происходит?
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell : shopsTableViewCell = tableView.dequeueReusableCellWithIdentifier("shopCell", forIndexPath: indexPath) as! shopsTableViewCell
cell.index = indexPath.row
let qualityOfServiceClass = QOS_CLASS_BACKGROUND
let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
let apiCall = webApi()
dispatch_async(backgroundQueue, {
apiCall.downloadPhotoAsync("http://api-ytyg.wbbdev.com/files/shops/\(shops[indexPath.row].id)/\(shops[indexPath.row].featured_img)"){(image: UIImage?) -> Void in
dispatch_async(dispatch_get_main_queue()){
if(image != nil){
if (cell.index == indexPath.row){
// shops[indexPath.row].photo = image!
cell.shopImg?.image = image
}
}else{
shops[indexPath.row].photo = UIImage.init(named: "No_Image_Available.jpg")!
}
}
}
})
cell.shopName?.text = shops[indexPath.row].name
cell.shopDescription?.text = shops[indexPath.row].address
cell.label1?.text = shops[indexPath.row].city + " | " + shops[indexPath.row].distance + "Km"
cell.becomeFirstResponder()
return cell
}