使用iOS下载的软件包中包含的XIB / NIB文件

从表面上看,这似乎是一个非常简单的问题,但由于某种原因,我无法完成这项工作。

我有一个杂志风格的应用程序,以压缩包的forms下载每个问题的数据。

一旦下载并解压,应用程序就可以成功地访问包中包含的各种文件。 这些包括JSON,PNG,JPG,video等。

但是,我还包含一个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'' 

现在,这是一个iOS强制限制,不从下载的包中访问XIB,或者我在调用XIB使用时出现一些错误?

但是我找不到明确禁止以这种方式使用获取的捆绑包。

我不确定你是否可以“合法”逃避这一点。 但问题可能是你正在提供一个'xib'而不是编译版本'nib'。

您可以使用提供的ibtool程序从命令行手动执行此操作。

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

然后,将编译后的.nib文件放入捆绑包中,并像您一直在尝试的那样加载。