2012-09-24 15 views
8

Eventuali duplicati:
Can you reference Xib files from static libraries on the iPhone?Caricamento di un pennino che è incluso in un quadro

ho creato un quadro iOS e comprende una visione XI ter. Quando ho il debug del programma, questa riga di codice ha funzionato bene:

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:[NSBundle mainBundle]]; 

Tuttavia, quando ho 'riferimento' il quadro di un altro progetto - il pennino non è più nella 'mainBundle' è. Cosa devo fare con il codice sopra (che fa parte del framework) in modo che venga caricato dal framework e non dal consumer application project?

+0

Sorta correlato [? Si può fare riferimento i file XIB da librerie statiche su iPhone] (http://stackoverflow.com/questions/707429/can-you -reference-xib-files-from-static-libraries-on-the-iphone) – CodaFi

+0

@ConfusedNoob - è una libreria statica o [framework universale] (https://github.com/kstenerud/iOS-Universal-Framework) per iOS? – FluffulousChimp

+0

È un framework universale come per questo post - http://spin.atomicobject.com/2011/12/13/building-a-universal-framework-for-ios/ ma inizia la vita come una libreria statica. – ConfusedNoob

risposta

15

Nel framework Info.plist, il framework in questione deve avere un identificatore di bundle. Nell'applicazione che fa uso di questo quadro personalizzato, si dovrebbe essere in grado di accedere alle risorse in questo pacchetto da:

NSString *frameworkBundleID = @"com.yourCompany.YourFrameworkBundleID"; 
NSBundle *frameworkBundle = [NSBundle bundleWithIdentifier:frameworkBundleID]; 

Questa è la NSBundle da cui è possibile accedere alle risorse quadro.

EDIT:

Sembra che ci sia un alternativo (forse meglio) i mezzi di accesso al pacchetto in questione.

esempio:

NSBundle *bundle = [NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"MyLibraryResources" withExtension:@"bundle"]]; 

Vedi this excellent tutorial

+0

Ci proverò. Poiché il codice si trova all'interno del framework, c'è un modo più "introspettivo" di fare questo invece di avere il nome codificato nel framework ... ad es. [NSBundle currentBundle]; // silly pseudocode – ConfusedNoob

+1

downvote - davvero? il PO ha dichiarato "framework iOS" con il quale si potrebbe ragionevolmente assumere qualcosa come [questo] (https://github.com/kstenerud/iOS-Universal-Framework) in cui le risorse ** possono ** essere impacchettate. – FluffulousChimp

+0

@ConfusedNoob incerto sull'introspezione che suggerisci. – FluffulousChimp

Problemi correlati