Como obtener el path del Bundle de tu aplicación

En Mac OS X a diferencia de en otros sistemas operativos las aplicaciones no son solo archivos ejecutables. En este caso las aplicaciones son principalmente un folder en el cual se contiene un archivo de configuración .plist el cual le dice al Sistema Operativo que el folder debe ser considerado como una aplicación.

Este folder en términos de Objetive-C es denominado Bundle, en este bundle se pueden guardar los recursos de tu aplicación, ya sean imágenes, música, videos, o archivos de bases de datos (Ej. archivos de sqlite). Todo lo que desees que se entregue con tu aplicación estará ahí.

De esta manera obtienes el folder del bundle de tu aplicación.

NSString *bundlePath =[[NSBundle mainBundle] resourcePath]];
NSLob(boundlePath); //Imprime el path absoluto del bundle

Explicaciones:

  • (NSBundle *) [NSBundle mainBundle] – Te trae el objeto NSBundle de tu aplicación.
  • (NSString *) [NSBundle resourcePath] – Regresa el Path del bundle al que este asociado (en este caso tu aplicacion para iphone).

Notas:

  • Hay que recordar que los bundles en el iphone son de solo lectura (read only).
  • Por lo anterior los archivos de datos como bases de datos o Property Lists (plists) no pueden modificarse directamente en el bundle.
  • Se recomienda copiar los archivos de datos a tu carpeta de Documents en el iphone para poder ser modificados sin problemas. De esto hablaremos en otro post.
  • En programación para Mac’s NSBundle puede ser utilizado para instanciar otros bundles diferentes al de la aplicación que lo llama.

Vinculos:

Advertisement

Sin comentarios aún

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.