Se si desidera creare le interfacce utilizzando il generatore di interfacce durante la creazione di una libreria statica, sarà necessario creare un pacchetto e distribuirlo con la libreria.
In Xcode:
- File> Nuovo> Target
- Selezionare "Bundle" dal quadro OS X e la sezione Biblioteca
- compilare i dettagli. Il framework del bundle dovrebbe essere il fondamento centrale.
Quindi è necessario che il pacchetto venga compilato contemporaneamente al framework. Aggiungi il pacchetto alla fase di costruzione "Dipendenze di destinazione" del tuo framework.
Quando crei i tuoi xibs, fai il loro obiettivo questo nuovo pacchetto che hai creato.
Quindi, quando si compila il framework nella directory dei dati derivati, accanto al file binario del framework si trova il pacchetto compilato. Tu dai questo ai tuoi terzi insieme al binario quadro.
Quindi, come si fa a fare riferimento a questo pacchetto nel codice? Nei bundle iOS non può essere caricato e il bundle sarà effettivamente all'interno del bundle principale dell'applicazione iOS di terze parti. È possibile creare una categoria a NSBundle per accedere comodamente il vostro pacco dal codice:
@interface NSBundle (mybundle)
+(NSBundle *)myBundle;
@end
@implementation NSBundle (mybundle)
static NSBundle * _myBundle;
+(NSBundle *)myBundle{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSBundle * mainBundle = [NSBundle mainBundle];
NSString * pathToMyBundle = [mainBundle pathForResource:@"myBundle" ofType:@"bundle"];
NSAssert(pathToMyBundle, @"bundle not found", nil);
_myBundle = [NSBundle bundleWithPath:pathToMyBundle];
});
return _myBundle;
}
È quindi possibile accedere al pacchetto in codice per caricare xibs in questo modo:
UIViewController * controller = [[UIViewController alloc] initWithNibName:nil bundle:[NSBundle myBundle]];
Ricordate che se usate le categorie nel tuo codice quadro dovrai assicurarti che i tuoi clienti del framework aggiungano il -ObjC
(o -all_load
se non usi un Xcode recente) "altro linker" ai loro progetti
http://stackoverflow.com/questions/6859143/whether-nib-xib-files-can-be-added-to-a-static-library hanno un look di questo può aiutare a. –
Quando creiamo una libreria statica, fornisce i file .h e .m in cui dobbiamo scrivere il codice. Sì, possiamo scrivere facilmente la funzione Fibonacci. Cosa succede se desidero visualizzare la tabella nella prima vista. Dato che non ho alcun file xib. Posso creare una funzione e posso creare tableview in modo programmatico. e se selezioniamo una cella, è necessario che venga visualizzato un nuovo controller di visualizzazione. Per favore puoi guidarci. –