Pregunta

Estoy tratando de asegurarme de cubrir todas mis bases con respecto al fallo de alassetslibrary por cualquier razón. Al mirar a través de los posibles errores que podrían ocurrir al llamar:

- (void)enumerateGroupsWithTypes:usingBlock:failureBlock;

Noté que elassetslibraryDataUnavailableError, pero no hay mucha información sobre lo que podría causar esto. Quiero mostrar una pantalla de error en consecuencia.

Cualquier idea sería apreciada. ¡Gracias!

¿Fue útil?

Solución

Encontré el alassetslibraryDataUnavailableError en 3 casos:

  1. Al usar el simulador y cambiar entre iPhone y iPad Simulator.
  2. En el dispositivo, cuando la biblioteca de fotos estaba corrupta o en un estado inconsistente.
  3. Después de realizar una actualización de iOS sin haber sincronizado a iTunes.

Recomendaría mostrar un mensaje al usuario, se encuentra con este error, recomendando: 1. Para abrir la aplicación Fotos ... Esto generalmente arregla una biblioteca inconsistente. 2. Si eso no ayuda a reiniciar el dispositivo y sincronizar con iTunes una vez.

Salud,

Hendrik

Otros consejos

Ok, descubrí otra circunstancia peculiar donde aparece este error:

  • Intentando guardar una UIImage en el rollo de fotos/álbum de fotos usando UIImageWriteTosavedPhotosalBum.
  • iOS le pide al usuario permiso para acceder a la biblioteca de fotos: el usuario niega (!)

En el final de finalización, el nserror suministrado contiene alassetslibrary alassetslibraryDataUnavailableError.

Uno pensaría que el error sería algo más como elsetslibraryAccessUserDeniedError o alassetslibraryAccessgloballyDeniedError. Pero no lo es. Es solo alassetslibraryDataUnavailableError.

Esto se probó en el iPhone 5, iOS 6.0.1. Tal vez no sea un error, o lo es y lo arreglarán algún día.

De todos modos, la "solución" es hacer que el usuario entra en configuración → Privacidad → Fotos → Haga que su aplicación se encienda aquí. El mensaje de sugerencia de solución localizada es incorrecto: sugiere abrir la aplicación Fotos. Ninguna otra información sobre el error dado. De todos modos, el usuario probablemente debería saber que él/ella presionó el botón "Denegar", aún así podría haberlo hecho por error y luego no tendrían idea de lo que está sucediendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top