2013-04-25 22 views
0

我們有一個控制器,它是UIViewController的後代。也就是說,這樣的:nibBundleOrNil返回包的名稱和消息「(尚未加載)」是什麼意思?

  • 的UIView控制器
    • BaseViewControllerChild
      • ViewControllerInQuestion

當我們試圖顯示它時,這個ViewControllerInQuestion沒有顯示出來。我們碰巧在init方法中有一個日誌語句。

-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    NSLog(@"ViewControllerInQuestion : initWithNibName:: %@ %@", nibNameOrNil, nibBundleOrNil); 
    // ... 
} 

我們的日誌記錄報告了一些有趣的事情。

ViewControllerInQuestion : initWithNibName: ViewControllerInQuestion 
NSBundle </var/mobile/Applications/84129-777-IAMSMASHINGNUMBERSBUTYOUGETTHE 
IDEA-85327/OurApp.app/OurSDKResourcesBundle.bundle> (not yet loaded) 

特別是我們看到它說「(尚未加載)」即最後一部分。 這是什麼意思?我們已經構建了我們的資源包,它似乎很高興地位於我們的項目中。

語境

沒有得到由上下文(你太過分了!),但是我們實際上帶來了我們的團結SDK這個視圖 - 控制相關的視圖嚇跑了。也就是說,我們有一個由Unity創建的XCode項目,我們已經將自己的SDK添加到該XCode項目中,並且此視圖控制器位於該SDK中。它也沒有出現。

其他問題/搜索結果提到異常或不同的錯誤。這個就是從這個日誌語句開始,因爲我們調試了爲什麼XIB不會顯示;它不是一個例外,它只是不顯示。這是什麼意思?

獎勵注意:我們的代碼在Unity的更高版本(4.1.2)中玩的很好。爲了使用舊版Unity(3.5.7)進行編譯,我們必須修改XCode項目(Unity吐出的)上的許多項目設置,並稍微更改代碼。內部的SDK代碼本身沒有改變:我們只更改了Unity吐出的XCode項目的文件和項目,這意味着問題可能是1)我們的項目設置/ XCode項目更改或2)更舊的內容Unity或iOS版本。第一步是瞭解「(尚未裝載)」的含義,我想!

回答

1

(尚未加載)...

NSBundle是像一個容器,接口資源,但它也對碼資源的容器。您可以在沒有加載代碼資源的情況下實例化一個包,然後明確加載它們(- isLoaded- load,- loadAndReturnError:)。

確保在構建期間將所有資源配置爲複製到您的包中。您可以在Finder中打開包(右鍵單擊並顯示包內容)以驗證它是否包含您期望的所有內容。

相關問題