UIDocumentInteractionController: image (nula)

Estoy descargando una image de la API y guardándola en un directory del dispositivo. Luego estoy tratando de usar UIDocumentInteractionController en él, pasando la ruta local de la image que acabo de save.

NSURL *url = [NSURL fileURLWithPath: filePath]; UIDocumentInteractionController *interactionController = [UIDocumentInteractionController interactionControllerWithURL: url]; interactionController.delegate = self; CGRect rect = CGRectMake(0, 0, 300, 300); [interactionController presentOptionsMenuFromRect:rect inView:self.view animated:YES]; 

Cuando comparo dos NSString por logging, esto es lo que obtengo:

  • [url absoluteString]

    file:///var/mobile/Containers/Data/Application/1121F345-0BCA-4624-8A72-F4CE0D39EAE5/Documents/complaint/1443432747ea3dc39ca0b2f6b5f17abddec1f0e9a439955.png

  • filePath

    /var/mobile/Containers/Data/Application/1121F345-0BCA-4624-8A72-F4CE0D39EAE5/Documents/complaint/1443432747ea3dc39ca0b2f6b5f17abddec1f0e9a439955.png

Como puede ver, la ruta es indentical, aparte de file: // al principio o url string. La image no está dañada, pero en cada acción seleccionada de UIDocumentInteractionController (save image, asignarla al contacto, etc.) hay un object (nulo) en lugar de la Imagen. ¿Qué estoy haciendo mal?

EDITAR:

Si uso

 [interactionController presentPreviewAnimated:YES]; 

en lugar de

 [interactionController presentOptionsMenuFromRect:rect inView:self.view animated:YES]; 

Y proporcione el método delegate documentInteractionControllerViewControllerForPreview: muestra la image y todas las acciones funcionan. ¿Por qué funciona cuando se usa con una vista previa, pero no sin ella?

Encontré mi respuesta en esta pregunta .

Básicamente, el UIDocumentInteractionController se desasignó (ARC) antes de que se pudiera procesar la acción seleccionada. Asegúrate de que se retenga, lo hice creando una strong propiedad para él ( strong es el pnetworkingeterminado para el ejemplo a continuación).

 @property (nonatomic) UIDocumentInteractionController *interactionController;