Problema: [NSBundle mainBundle] pathForResource devuelve un valor nulo (0x0)NSBundle mainBundle pathForResource (quizás no es el mismo problema)
Leo un montón de mensajes sobre este tema, esto es lo que encontré:
Asegúrate de que el archivo al que tratas de acceder esté en el proyecto. Para verificar, busque en el listado de archivos del proyecto el archivo, si no está allí, arrástrelo y suéltelo.
Compruebe que el archivo que intenta cargar se está copiando en la aplicación. Para hacer esto, haga clic en proyecto debajo de los archivos del proyecto (barra azul con el nombre del proyecto en él-> Haga clic en el objetivo-> Haga clic en Fases de compilación-> Haga clic para expandir los "Recursos del paquete de copia" y asegúrese de que el archivo esté en él Si no es así, haga clic en el signo más y añádalo.
Asegúrese de que la caja coincida exactamente. (También conocido como - El simulador funcionará/la aplicación no tendrá problemas) Asegúrese de que la caja coincida exactamente, de lo contrario lo hará no devuelva nada. Para solucionar esto, simplemente cambie el nombre en el proyecto, o use el caso correcto en la fuente.
Puede que al proyecto le falte el marco de medios. Para solucionarlo, haga clic en el menú del proyecto -> haga clic en el objetivo -> haga clic para expandir "Enlace binario con bibliotecas". Ahora seleccione MediaPlayer.framework y cree el código.
Si falla todo lo demás, limpie el proyecto y vuelva a intentarlo.
Todo esto se ha comprobado/reparado, pero no funciona. Tuve esto funcionando bien, y luego cambié el video que estoy mostrando en la aplicación. Desde que cambié el archivo, dejó de funcionar.
NSString *path = [[NSBundle mainBundle] pathForResource:@"multiplying" ofType:@"m4v"];
Q: ¿por qué es nula? El archivo está emparejado/escrito correctamente y tiene unos 10 megas. (¿El archivo es demasiado grande?) Funciona bien en el simulador, y puedo obtener la ruta a una imagen, una línea arriba de esta, sin ningún error.
veces no la fase de "generación limpia" limpiar completamente el proyecto. Para tener una mejor limpieza, aparte de borrar la aplicación del dispositivo/simulador, debe limpiar todas las referencias al proyecto dentro del área ~/Library/Developer/XCode/DerivedData y luego vuelva a intentar compilar. Algunas veces este directorio le dice a xcode que no copie o reemplace algunos archivos en el paquete pensando que ya están allí y que en realidad no hace una reconstrucción completa. Esto ocurre a menudo con XCode 4.x. Puede agregar este punto después de [5] en su lista. – viggio24
Encontré mi solución en su pregunta, en el punto número 2 :) ¡Muchas gracias! – Nishant