Antes que nada, dado que su pregunta está etiquetada como iPhone, solo puede incluir el código en sus paquetes en el iPhone. Entonces, básicamente, solo puede usar paquetes para empaquetar imágenes y archivos de sonido y otros datos estáticos.
Cuando crea un nuevo proyecto en XCode, hay una opción para convertir el destino en un paquete (en la Biblioteca de Framework &), pero un paquete de activos es solo un directorio con un sufijo .bundle. Genero de minas con este pequeño script:
#!/bin/bash
echo "Building assets bundle."
if [ -d ./MyAssets.bundle ]; then
rm ./MyAssets.bundle/*
else
mkdir ./MyAssets.bundle
fi
find ./assets -type f -print0 | xargs -0 -J% cp % ./MyAssets.bundle
(no soy un hacker de fiesta, así que probablemente esto se puede mejorar de muchas maneras aceptan sugerencias.!)
Esto toma una jerarquía de carpetas y la aplana (Detesto las jerarquías) en un único directorio que se llama MyAssets.bundle. Disparo esta secuencia de comandos desde una fase de construcción separada cuando en proyectos que importan el paquete, para que los cambios se rastreen automáticamente.
Si desea aprender a crear paquetes de marcos, es un poco más complicado (debe seguir ciertas convenciones e incluir información en listas), pero para los paquetes de iPhone, esto es prácticamente todo lo que necesita saber y hacer.
¿Es posible cargar archivos xib de este paquete, porque no he encontrado una manera de hacer eso ? – vakio
Puede usar el paquete apropiado en el paquete [[NSBundle mainBundle] loadNibNamed: @ "MyViewController": self options: nil] y [aViewController initWithNibName: @ "MyViewController" bundle: nil] (nil solo significa el paquete principal) – Felixyz
Pero no puedes tener un paquete externo, ¿verdad? Como NSBundle * bundle = someFunctionToLoadExternalBundle(); [bundle loadNibNamed: @ "name" owner: self options: nil]; Busqué en Google y solo descubrí que no se puede hacer. Solo comprobando si descubrió una forma milagrosa de hacerlo o algo así, pero sé que probablemente nunca va a suceder. – vakio