2010-12-19 22 views
7

Así que cuando ejecuto la aplicación desde el dispositivo aparecen las imágenes y todo funciona bien. Sin embargo, cuando me muevo al dispositivo corro aproximadamente 10 de 38 imágenes que no aparecen. Estoy sacando los nombres de las imágenes de una base de datos sqlite y ya he verificado y los nombres son correctos, caso y todo. Revisé el paquete y las imágenes están correctamente allí.Imágenes que se muestran en el simulador pero no en el dispositivo de iPhone

¿Funciona la memoria en esto? No estoy seguro de qué más podría causar que esto suceda?

Gracias!

Solución: Los archivos de alguna manera no se guardaron correctamente y no pudieron ser abiertos por ejemplo photoshop o pintura. Entonces, como los archivos no podían abrirse, no aparecían ... ¡Gracias por ayudar a todos!

Respuesta

6

El simulador acepta una gama más amplia de formatos de imagen. A veces tiene un tipo de archivo específico que el dispositivo no puede mostrar. Comprueba dos veces los 10 archivos buscando alguna diferencia con los otros.

2

Sí, la memoria tiene absolutamente en cuenta esto. Comprueba tus llamadas de creación de UIImage y asegúrate de que no regresen vacías. Además, verifique si está recibiendo advertencias de memoria en la ventana de la consola.

43

Lo primero que debe verificar es el caso de las cadenas que está utilizando para referirse a los recursos. El iPhone distingue entre mayúsculas y minúsculas, pero el simulador no.

Vaya, acabo de ver que ha revisado el caso. ¡Registre mejor todas sus llamadas de creación de UIImage luego!

+1

Perspicaz. 12. – ratsimihah

+2

Esto me ayudó. El simulador parece insensible a mayúsculas y minúsculas para la parte de UIImage de imageNamed, pero el dispositivo es estricto al respecto. – Joseph

+0

Esto también me ayudó. – Bobby

1

general, si en memoria tamaño era el culpable, su aplicación se estrellaría con un error de memoria insuficiente en el dispositivo. Sin embargo, parece que las imágenes simplemente no se muestran.

Otra cosa que puede estar yendo mal es el tamaño de las imágenes. UIViews en el iPhone solo puede tener dimensiones más pequeñas que el tamaño máximo de textura admitido por la GPU. Apple dice que esto es 1024 x 1024, pero he encontrado que se parece más a 2048 x 2048 incluso en el modelo original de iPhone. Es posible que esté creando una vista para algunas de estas imágenes que supera este tamaño en una dimensión, pero su Mac tiene un tamaño máximo de textura más grande en su GPU y, por lo tanto, se muestra bien en el simulador.

+0

solo un comentario sobre el tamaño de la imagen, el tamaño doble se debe al nuevo iPhone 4. Ahora puede hacer que las imágenes tengan el doble de tamaño para la resolución. Creo que es tan simple como tener imágenes con el tamaño original de la imagen y el nombre original, el segundo con el nombre de la imagen + "@ x2" o "@ 2" que es dos veces el tamaño/resolución. – Matt

+0

@Matt - No, la diferencia en el tamaño máximo de la textura no se debe al iPhone 4, sino que es una limitación inherente de la GPU utilizada. He podido usar capas y texturas de 2048 x 2048 desde iPhone OS 2.0 en el iPhone original, por lo que no está relacionado con las nuevas capacidades de visualización de Retina. Este es solo un caso en el que la documentación de Apple difiere del hardware real, que puede ser solo que sean conservadores en caso de que las especificaciones de la GPU cambien en el futuro. –

+0

La resolución máxima se establece como 2048 para PowerVR SGX. En cuanto a las imágenes, encontramos que nuestra aplicación no falla si las imágenes son demasiado grandes o si no hay suficiente memoria. El ios descarga otras imágenes que no se muestran y luego cuando vuelves a ellas simplemente arden allí. Sin embargo, la consola muestra una advertencia de memoria. – twerdster

Cuestiones relacionadas