2012-01-08 25 views
1

從表面上看,這似乎是一個非常簡單的問題,但由於某些原因,我無法完全實現它。在iOS上使用下載的軟件包中包含的XIB/NIB文件

我有一個雜誌風格的應用程序,它以壓縮包的形式下載每個問題的數據。

一旦下載並解壓縮,應用程序就可以按照預期成功訪問包中包含的各種文件。這些包括JSON,PNG,JPG,視頻等。

但是,我還包含一個XIB文件,其中包含一系列UIViews中的內容的物理佈局,並且它是我不能使用的這個文件。

該文件存在,但是當我嘗試加載它使用:

UIViewController *controller = [[UIViewController alloc] initWithNibName: @"ViewController" bundle: assetBundle]; 

我收到以下錯誤:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/C6718DB8-0C0F-4D38-84E6-55C145279957/Documents/asset-4.bundle> (not yet loaded)' with name 'ViewController'' 

現在,這是不是訪問XIBs在iOS強加的限制下載的軟件包,還是我在調用XIB時遇到的一些錯誤?

但是,我無法明確禁止以這種方式使用獲取的捆綁包。

回答

9

我不確定你是否可以'合法'逃脫這一點。但問題可能是你正在提供'xib'而不是編譯版本'nib'。

您可以通過使用提供的ibtool程序從命令行手動執行此操作。

ibtool --errors --warnings --output-format human-readable-text --compile ${OUTPUT_NAME} ${INPUT_NAME}

你會然後把編譯筆尖文件到捆綁和負載,你一直在努力。

+0

現在,完美的作品!非常感謝。 – reddersky 2012-01-08 19:19:12

+1

我想這是合法的,因爲XIB不是可執行代碼,而只是界面佈局。 – AlexeyVMP 2012-01-08 19:20:39

+0

希望這是!我已經向蘋果公司提交了一份請求,以便找出答案 - 當我拿到它時,會發布有關他們回覆的詳細信息。 – reddersky 2012-01-08 19:32:06

相關問題