2011-11-02 22 views
2

我想在iOS項目中包含一個靜態庫。我導入整個靜態庫項目,然後我掛的lib中的「目標相關」和「與庫鏈接二進制」作爲在這裏解釋:http://www.applausible.com/blog/?p=657在iOS項目中使用包時出錯/如何創建正確的包?

但隨後測試的應用程序時,我得到這個錯誤:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/alexis/Library/Application Support/iPhone Simulator/5.0/Applications/9811107D-0D7E-4178-ACCE-BF43E3043770/PlazappPartnerTest.app> (loaded)' with name 'LauncherView'' 
*** First throw call stack: 
(0x188a052 ...... 

我想它不能訪問.xib文件,但因爲它包含在我的庫中,所以我不知道爲什麼。 如何使主項目'查看'.xib文件? (如果這實際上是問題...)

編輯:

我試圖讓包含的.xib文件包和我把它列入我的主要項目,但我不能使用這個包。我嘗試這樣做:

NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"BundleName" ofType:@"bundle"]; 
NSBundle *bundle = [NSBundle bundleWithPath:bundlePath]; 

NSError *error; 
[bundle loadAndReturnError:&error]; 

NSLog(@"bundle error : %@", [error userInfo]); 

而且我得到了這個錯誤:

NSLocalizedDescription = "The bundle \U201cBundleName.bundle\U201d couldn\U2019t be loaded because its executable couldn\U2019t be located."; 
NSLocalizedFailureReason = "The bundle\U2019s executable couldn\U2019t be located."; 
NSLocalizedRecoverySuggestion = "Try reinstalling the bundle."; 

什麼問題?

我想我無法加載包含非可執行資源(如.xib文件)的包。我對嗎?

但是,那麼如何從捆綁包中加載我的.xib?

回答

3

經常在Cocoa編程中有多種方法來獲得捆綁。我已經成功與此:

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

然後用這個加載筆尖:

MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:libBundle]; 

這個特定的呼叫您對loadAndReturnError:負載包的可執行代碼。由於這個bundle可能沒有任何可執行代碼,只是庫需要的資源集合,它會給你這個錯誤。

編輯(迴應評論):

我加入了新的目標,以我的庫項目的捆綁了我的包。從Mac OS X捆綁包模板開始,我將所有圖像,.xib和其他資源添加到「複製捆綁軟件資源」構建階段。我將基礎SDK更改爲iOS(最新版)。然後,我將該軟件包添加到庫的依賴項和最終應用程序的「複製捆綁軟件資源」構建階段。

如果您只是嘗試將.xib文件添加到文件夾方法,那麼.xibs不會編譯到nib中,並且iOS無法讀取它們。

+0

好的,所以沒有必要加載它。你是如何創建你的包?我看到了2種方法,但他們不適合我... 1.創建一個文件夾資源,將.xib複製到裏面,在Resources.bundle中重命名,然後將其添加到項目中。 2.在項目中添加一個新目標(Mac OS X> Framework and Library> Bundle),然後將.xib複製到捆綁包中並編譯它(使用正確的體系結構選項)。 – Alexis

+0

非常感謝,它的作品像一個魅力;) – Alexis

+0

這種方法很好,謝謝! – Andrew

相關問題