Ich stecke mit einem Problem fest. Ich möchte eine Tabellenansicht mit etwas Text und einem Profilbild füllen, das sich ändern kann, ich benutze diese Funktion dafür.Wie Cache mit Haneke Swift Swift löschen?
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
}
nichts, um hier zu überraschen. Aber wenn ich mein eigenes Profilbild ändere, dann sende ich es an die API und revist diese Funktion es zeigt das zwischengespeicherte Bild an. Also habe ich mir gedacht, ich könnte etwas anderes ausprobieren, warum nicht alle Bilder für jede Zelle mit Alamofire bekommen.
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
}
das funktioniert bis zu einem Punkt, wo Benutzer scrolles sehr schnell das Bild eines anderen Benutzers angezeigt wird, bis die Anforderung erfüllt wird. Okey so machen Sie das etwas anders und verwenden Sie ein Array für die Bilder. Das habe ich auch versucht. aber weil es asynchron ist, würden die Bilder in der falschen Reihenfolge in das Array gehen. Also zurück zu HanekeSwift. Ich habe die Dokumentation gelesen und gesehen, dass ich einen Cache auf der Festplatte hatte, aber ich konnte ihn nicht löschen oder löschen.
den Cache löschen i auch versucht. NSURLCache.sharedURLCache() removeAllCachedResponses()
aber ich etwas nicht tun. Es funktioniert in der Alamofire-Situation, aber es ist auch keine gute Lösung.
Ich möchte hanekeSwift verwenden, weil HanekeSwift schnell genug ist, um alle Bilder zu erhalten. aber ich möchte den Cache jedes Mal löschen, wenn der contoller lädt.
Irgendwelche Vorschläge würden geschätzt!
Cees
Haben Sie versucht: 'Shared.imageCache.removeAll()'? – riik