我試圖從軟件包中顯示視圖時,發生崩潰。這裏的設置:從軟件包加載NIB時出現異常
- 項目包含應用程序的主束內束CFramework.bundle
- CFramework.bundle包含GigyaFBPreviewController.xib和它使用的圖像,在它的根
- GigyaFBPreviewController.m處於靜止庫由項目
代碼中引用:
NSString* bundlePath = [[NSBundle mainBundle] pathForResource:@"CBCFramework" ofType:@"bundle"];
NSBundle* bundle = [NSBundle bundleWithPath:bundlePath];
GigyaFBPreviewController* gigya = [[GigyaFBPreviewController alloc] initWithNibName:@"GigyaFBPreviewController" bundle:bundle];
[self presentModalViewController:gigya animated:YES];
代碼在點擊按鈕後執行,並在最後一行中崩潰。 GigyaFBPreviewController只是一個UIViewController,它使用默認的initWithNibName:捆綁:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason:
'Could not load NIB in bundle: 'NSBundle </Users/mjovanovic/Library/Application Support/iPhone Simulator/4.3.2/Applications/A40F8D71-EB88-4EB5-B9D3-CFD330C57F24/socialmediatest.app/CBCFramework.bundle> (not yet loaded)' with name 'GigyaFBPreviewController''
*** Call stack at first throw:
(
0 CoreFoundation 0x01ad85a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x01c2c313 objc_exception_throw + 44
2 CoreFoundation 0x01a90ef8 +[NSException raise:format:arguments:] + 136
3 CoreFoundation 0x01a90e6a +[NSException raise:format:] + 58
4 UIKit 0x00e050fa -[UINib instantiateWithOwner:options:] + 2024
5 UIKit 0x00e06ab7 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 168
6 UIKit 0x00cbc628 -[UIViewController _loadViewFromNibNamed:bundle:] + 70
7 UIKit 0x00cba134 -[UIViewController loadView] + 120
8 UIKit 0x00cba00e -[UIViewController view] + 56
9 UIKit 0x00cbba3d -[UIViewController viewControllerForRotation] + 63
10 UIKit 0x00cb7988 -[UIViewController _visibleView] + 90
11 UIKit 0x00f5993c -[UIClientRotationContext initWithClient:toOrientation:duration:andWindow:] + 354
12 UIKit 0x00c3181e -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 954
13 UIKit 0x00eb9619 -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:] + 1381
14 UIKit 0x00cbe65d -[UIViewController presentModalViewController:withTransition:] + 3478
15 socialmediatest 0x000027bb -[socialmediatestViewController clicky:] + 283
etc
相關信息:
- 如果我把筆尖文件出來CFramework.bundle,並把它轉化項目,它工作正常。不過,我需要它在一個包中分發一個靜態庫。
- 該包存在於.app中,並調用[bundle pathForRes:@「GigyaFBPreviewController」ofType:@「xib」]返回正確的路徑。
- 如果我從筆尖移除圖像參考,則沒有任何變化。所有圖像被引用爲CFramework \ image.png
- 「(尚未加載)」錯誤信息真的很奇怪。我發現了一些帖子,當用戶切換到Xcode4時遇到同樣的異常,但他們的解決方案對我來說並不適用。
*解*
的廈門國際銀行並沒有編譯成一個筆尖,它無法加載,咄。謝謝Joshua Weinberg在評論中提供以下鏈接!
的[下載包內包含在iOS上使用XIB/NIB文件(可能重複http://stackoverflow.com/questions/8780293/using-xib-nib-files-contained-within-downloaded-bundles-on-ios) – 2012-01-18 22:00:52
'(尚未加載)'不一定是錯誤消息。這隻意味着你沒有發送'load'消息到這個包。 – ughoavgfhw 2012-01-18 22:01:44
什麼是例外說明? – Costique 2012-01-19 05:15:10