Когда я заполняю новые данные в своем контроллере TableView, моя верхняя ячейка переписывается нижним. Позвольте мне объяснить. У меня есть одно изображение, загружающее async в последнюю строку ячейки, внизу. Все остальные ячейки загружаются статическими с изображением, которое находится в приложении. Когда я просматриваю свое приложение и показываю свою нижнюю ячейку, у которой другое изображение, чем другие ячейки, и я снова прокручиваю вверх, я вижу, что первое изображение магазина изменилось на динамическое, загруженное в нижнюю ячейку. Кто-нибудь знает, почему это происходит?Мои данные изменяются в UITableViewCell при прокрутке вниз и возвращаются
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
}
показать свою декларацию о shopImg и shopName, shopDescription –
отредактирован, чтобы добавить пользовательский класс клеток является декларирование свойств вы просили – user3033437
проверить мой ответ .. и почему бы вам не использовать библиотеку SDWebImage, его очень эффективен по сравнению со всем этим. он будет быстрее работать с кешем и всем –