Как удалить кеш с помощью HanekeSwift Swift?

Я застрял с проблемой. Я хочу заполнить табличное представление с некоторым текстом и изображением профиля, которое может измениться, я использую эту функцию для этого.

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell: CommonCellView!
    cell = self.tableView.dequeueReusableCellWithIdentifier("CommonCellView") as! CommonCellView
    cell.nameLabel.text = self.userCollection[indexPath.row].display_name
    cell.companyLabel.text = self.userCollection[indexPath.row].user_organisation
    cell.profileImage.hnk_setImageFromURL(NSURL(string: self.userCollection[indexPath.row].profile_picture)!)
    self.makeImageViewCircular(cell.profileImage.layer, cornerRadius: cell.profileImage.frame.height)
    cell.profileImage.clipsToBounds = true

    return cell
}

ничего удивительного здесь нет. Но когда я изменяю свою собственную фотографию профиля, я отправляю ее в API и проверяю эту функцию, она показывает кэшированное изображение. Так что я подумал, что могу попробовать что-то немного другое, почему бы не получить все изображения для каждой ячейки, используя Alamofire.

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell: CommonCellView!
    cell = self.tableView.dequeueReusableCellWithIdentifier("CommonCellView") as! CommonCellView
    cell.nameLabel.text = self.userCollection[indexPath.row].display_name
    cell.companyLabel.text = self.userCollection[indexPath.row].user_organisation
   cell.profileImage.image = UIImage()
    //getting the cell image
    Alamofire.request(.GET, self.userCollection[indexPath.row].profile_picture)
        .response {(request, response, avatarData, error) in

                        let img = UIImage(data: avatarData!)
                        cell.profileImage.image = img

    }
    self.makeImageViewCircular(cell.profileImage.layer, cornerRadius: cell.profileImage.frame.height)
    cell.profileImage.clipsToBounds = true

    return cell
}

это работает до такой степени, что пользователь очень быстро прокручивает изображение другого пользователя, пока запрос не будет выполнен. Окей, сделай так, чтобы это случилось где-то еще, и используй массив для изображений. Я тоже попробовал это. но поскольку он асинхронный, изображения будут идти в массив в неправильном порядке. Итак, вернемся к HanekeSwift. Я прочитал документацию и увидел, что у меня есть кэш на диске, но я не смог очистить или удалить его.

очистить кеш я тоже пробовал: NSURLCache.sharedURLCache().removeAllCachedResponses()

но я ничего не делал это работает в ситуации с Alamofire, но также не является хорошим решением.

Я хочу использовать hanekeSwift, потому что HanekeSwift достаточно быстр, чтобы получить все изображения. но я хочу очистить кэш каждый раз, когда загружается контроллер.

Мы ценим любые предложения!

Кеес

1 ответ

Решение

Я нашел проблему.

Сначала я запускал старую версию стручка. Поэтому после обновления я мог бы использовать функцию.

Shared.imageCache.removeAll ()

после импорта ханеке в контроллер.

последняя часть кода выглядела следующим образом. func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell: CommonCellView!
    cell = self.tableView.dequeueReusableCellWithIdentifier("CommonCellView") as! CommonCellView
    cell.nameLabel.text = self.userCollection[indexPath.row].display_name
    cell.companyLabel.text = self.userCollection[indexPath.row].user_organisation
    cell.profileImage.image = UIImage()
    //getting the cell image
    cell.profileImage.hnk_setImageFromURL(NSURL(string: self.userCollection[indexPath.row].profile_picture)!)
    //deleting it from cache
    Shared.imageCache.removeAll()
    self.makeImageViewCircular(cell.profileImage.layer, cornerRadius: cell.profileImage.frame.height)
    cell.profileImage.clipsToBounds = true

    return cell
}

это работает сейчас, но удаление кеша все время, когда другая ячейка заполняется, кажется немного излишним.

Другие вопросы по тегам