UIImage de GRKPhoto usando ALAsset

Estoy usando grabKit para permitir a los usuarios importar sus imágenes de Instagram, Facebook e imágenes locales a mi aplicación. El problema viene cuando la foto es local. En este caso, uso un método que funciona cuando el usuario selecciona la foto.

El código estándar que encontré para hacerlo es el siguiente:

 - (void) selector: (GRKPickerViewController *) selector didSelectPhoto: (GRKPhoto *) photo {

     [popover dismissPopoverAnimated: YES];

     GRKImage * originalImage = [foto originalImagen];

     NSLog (@ "la URL de la image original de la primera foto seleccionada es:% @", originalImage.URL);
     NSLog (@ "el tamaño de esta image es:% dx% d", originalImage.width, originalImage.height);

     // Si la URL comienza con assets-library: //
     if ([[originalImage.URL absoluteString] hasPrefix: @ "assets-library: //"]) {

         // crear una biblioteca
         ALAssetsLibrary * library = [[ALAssetsLibrary alloc] init];

         // Pregunte por el "Activo" para la URL.  Un activo es una representación de una image en la aplicación Foto.
         [library assetForURL: originalImage.URL
                  resultBlock: ^ (activo de ALAsset *) {

                      // Aquí, tenemos el activo, recuperemos la image de él
                      CGImageRef imgRef = [[asset defaultRepresentation] fullResolutionImage];

                      // Desde el CGImage, construyamos un UIImage
                      UIImage * fullResImage = [UIImage imageWithCGImage: imgRef];

                      NSLog (@ "El UIImage para URL% @ es% @", originalImage.URL, fullResImage);

                  } failureBlock: ^ (error NSError *) {
                      // Algo malo paso.
                  }];
 }

Al hacer un poco de debugging, descubrí que la aplicación falla cuando bash get el CGImageRef del ALAsset , ergo, en esta línea: CGImageRef imgRef = [[asset defaultRepresentation] fullResolutionImage]; .

Si puede ayudar a resolver mi problema, el post que recibo en la console es:

 *** Finalización de la aplicación debido a la exception no detectada 'CALayerInvalidGeometry', motivo: 'La position de CALayer contiene NaN: [nan 653]'

 *** Primera tirada de llamadas:

 (0x42f8012 0x2ad9e7e 0x42f7deb 0x161ee0b 0x161efa5 0x161f6eb 0x174fe53 0x18191c0 0x181941a 0x21fad 0x219f1 0x13de70 0xf3c03 0x1c0f42f 0x1c21182 0x1c21394 0x2aed705 0x181b93c 0x181b9ac 0x2aed705 0x181b93c 0x181b9ac 0x19d51d3 0x42c0afe 0x42c0a3d 0x429e7c2 0x429df44 0x429de1b 0x3b9d7e3 0x3b9d668 0x170dffc 0x69432 0x30f5)

 libc ++ abi.dylib: terminate called throwing a exception

¡Gracias por tu time e interés!

Por CALayerInvalidGeometry general, CALayerInvalidGeometry y NAN resultan de la configuration inválida de la ttwig CALayer, que a su vez se puede configurar por view.frame . Es posible que en alguna parte la position / transformación de la capa se establezca incorrectamente. Como no estás haciendo esto directamente, parece ser un error con Grabkit . Preséntela aquí .

Puede considerar ir dentro de CGImageRef imgRef = [[asset defaultRepresentation] fullResolutionImage]; usando F7 para proporcionar más información sobre el locking a Grabkit .