Wenn ich versuche, Fotos bekommen Sie eine URL von einem lokalen Galerie mit ich sie zu einem Tableview hinzufügen mit ALAssetsLibrary()
Fotos in Tableview von lokalen Galerie verwendet zu viel RAM
Mein Code:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: AllPhotosTableViewCell!
cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! AllPhotosTableViewCell
let url = array[indexPath.section]["photos"] as! [AnyObject]
if let image = cachedImages[url[indexPath.row] as! String] {
cell.imageViewImg.image = imageResize(image, sizeChange: CGSize(width: 50, height: 50))
} else {
let nsURL = NSURL(string: url[indexPath.row] as! String)!
var loadError: NSError?
asset.assetForURL(nsURL, resultBlock: { (asset) -> Void in
if let ast = asset {
let image = UIImage(CGImage: ast.defaultRepresentation().fullResolutionImage().takeUnretainedValue())
self.cachedImages[url[indexPath.row] as! String] = image
dispatch_async(dispatch_get_main_queue(), {
cell.imageViewImg.image = self.imageResize(image, sizeChange: CGSize(width: 50, height: 50))
})
}
}, failureBlock: {(error) -> Void in
loadError = error
})
}
return cell
}
Ich versuche, um die Größe von Fotos zu minimieren, hilft es ein wenig, aber es löst nicht das Problem, wenn ich viele Fotos (10 oder mehr ...) verwenden muss
Wenn Sie diese Bilder aus der Datei laden, müssen Sie sie nicht zwischenspeichern ... Und Sie müssen sie wirklich nicht in voller Größe zwischenspeichern ... – Putz1103
Nicht genau das Problem aber verwandt: AssetsLibrary ist seit veraltet iOS 8. Verwenden Sie stattdessen Photos.framework oder Sie werden große Probleme mit Benutzern haben, die iCloud Photo Library oder andere neue Funktionen verwenden. – rickster