ALAsset assetForURL causa asignaciones importantes nunca publicadas

Utilizo carrusel para mostrar imágenes locales en mi aplicación.

Cada vez que recargo la vista, puedo ver en "Instrumento" con la herramienta "Asignación" que mi aplicación asigna memory para imágenes, pero nunca la lanzó.

introduzca la descripción de la imagen aquí

A continuación puede ver el código:

func carousel(carousel: iCarousel!, viewForItemAtIndex index: Int, var reusingView view: UIView!) -> UIView! { if view != nil { for subview in view.subviews { if let imageView = subview as? UIImageView { imageView.image = nil } subview.removeFromSuperview() } } let newView = UIView(frame: aFrame) self._getImageFromLocalWithPath(aPath, completion : { image in if image != nil { let imageView = UIImageView(image: image!) newView.addSubview(imageView) } } ) return newView } private func _getImageFromLocalWithPath(imagePath : String?, completion : UIImage? -> Void) { autoreleasepool { ALAssetsLibrary.defaultAssetLibrary().assetForURL(NSURL(string : imagePath!), resultBlock: { asset in weak var wasset = asset if wasset != nil { let image = UIImage(CGImage : wasset?.defaultRepresentation().fullScreenImage().takeUnretainedValue()) // This is the incriminated line! completion(image) } }, failureBlock: { error in completion(nil) } ) } } 

Ya encontré temas sobre este problema, pero aún tengo mi problema:

  • ¿Causa de una asignación de memory grande (pérdida de memory?) Al leer UIImage desde el rollo de la camera
  • imageWithCGImage: problema de memory GCD (acerca de la solución propuesta sobre este tema, no sé si es realmente una buena idea retener / liberar manualmente cuando se usa ARC en el proyecto)

Cualquier sugerencia ?