Digamos que tengo un iOS o Mac Framework que llamaremos Test.framework. Este marco se ha compilado y enlazado con éxito (se hizo un truco para lipo tanto i386 como archv6/7 archs para la parte de iOS) y está funcionando perfectamente bien.Agregue una imagen (u otros recursos) a un Marco de Mac o iOS
Ahora quiero agregarle una imagen, llámenos 'test.png
'. He copiado en la carpeta Recursos de mi marco de modo que tenga la siguiente estructura:
ls Test.framework
- Headers -> Versions/Current/Headers
- Resources -> Versions/Current/Resources
- Test -> Versions/Current/Test
- Versions
ls Test.framework/Resources
- Info.plist
- test.png
Sin embargo, cuando se crea un proyecto utilizando mi marco no puedo acceder a esa imagen.
que he probado:
[UIImage imageNamed:@"test.png"]
[UIImage imageNamed:@"Test.framework/test.png"]
[UIImage imageNamed:@"Test.framework/Resources/test.png"]
Pero nada resultó que siempre me devolvió un objeto nil
.
¿Alguna idea?
EDITAR
Después de mucha investigación adicional parece lo que estoy tratando de lograr no se puede hacer en IOS. El motivo es que el paquete de aplicaciones final (el .app) no copia los marcos privados donde se compilarán las aplicaciones compiladas para Mac OS.
Esto se detalla más detalladamente en el iOS Bundle Structures documentation.
Gracias a Rob Keniger y xuzhe por su ayuda apreciada. Le daré crédito a xuzhe por la respuesta, ya que en realidad es la respuesta más adecuada para mi problema original (aunque Rob comentó que profundicé en el problema)
diciendo que "El método" imageNamed: "es solo para imágenes en su paquete de aplicaciones" no es del todo cierto. Si agrego un paquete (por ejemplo, test.bundle) a mi proyecto y este paquete tiene test.png en él, entonces [UIImage imageNamed: @ "test/test.png"] funcionará muy bien. – apouche
sin embargo, su solución es interesante, pero no tengo el marco incluido en mi aplicación (puede instalarse en las carpetas de frameworks comunes) – apouche
@apouche Si está agregando un paquete en su paquete de aplicaciones y luego llama '[UIImage imageNamed: @ "test.bundle/test.png"]; 'está bien porque el archivo test.bundle también está en el paquete principal. Si no es así, dudo que "imageNamed:" pueda encontrarlo. – xuzhe