Ci sono molte buone ragioni per costruire un'applicazione con più fasci e diversi modi per farlo. Per la mia esperienza il modo migliore è aperta Xcode e creare un nuovo progetto di bundle:
- Seleziona: File -> Nuovo progetto ... -> Gruppo Mac OSX -> quadro & Libreria -> Bundle (!). Aggiungi i tuoi file di risorse al progetto.
- Costruisci il pacchetto mentre crei altre app per iPhone.
- È possibile aggiungere questo progetto al progetto della libreria statica e ricostruirlo per tutto il tempo in cui la libreria viene modificata. Devi sapere che il pacchetto stesso non sarà collegato al tuo file di libreria.
- Nei tuoi progetti App Aggiungi il file .bundle al progetto come un file di risorse ordinarie (Aggiungi -> file esistenti ... -.> Individuare e selezionare il file di cui sopra .bundle costruito Non copiare).
Esempio:
// Static library code:
#define MYBUNDLE_NAME @"MyResources.bundle"
#define MYBUNDLE_IDENTIFIER @"eu.oaktree-ce.MyResources"
#define MYBUNDLE_PATH [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: MYBUNDLE_NAME]
#define MYBUNDLE [NSBundle bundleWithPath: MYBUNDLE_PATH]
// Get an image file from your "static library" bundle:
- (NSString *) getMyBundlePathFor: (NSString *) filename
{
NSBundle *libBundle = MYBUNDLE;
if(libBundle && filename){
return [[libBundle resourcePath] stringByAppendingPathComponent: filename];
}
return nil;
}
// .....
// Get an image file named info.png from the custom bundle
UIImage *imageFromMyBundle = [UIImage imageWithContentsOfFile: [self getMyBundlePathFor: @"info.png"] ];
Per ulteriori informazioni è possibile controllare questi buoni articoli
iOS Library With Resources
Resource Bundles
Spero che ti aiuti.
fonte
2013-04-30 10:40:51
Grazie per la risposta :) –
hmmm. benvenuto Midhun :-) –
una cosa: imageWithContentsOfFile è scadente in caso di prestazioni è meglio usare imageNamed in quanto usa la cache in modo che possa essere più veloce :) Inoltre puoi ottenere lo stesso risultato con meno codice in modo semplice: '[UIImage imageNamed : [NSString stringWithFormat: @ "my.bundle /% @", imageName]]; 'e semplicemente il nome del pacchetto corretto –