gpt4 book ai didi

ios - nibBundleOrNil 返回包的名称和消息 "(not yet loaded)"意味着什么?

转载 作者:行者123 更新时间:2023-11-29 03:58:12 25 4
gpt4 key购买 nike

我们有一个 Controller ,它是 UIViewController 的后代。也就是说,类似于:

  • UIView Controller
    • 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)

特别是最后一部分,我们看到它说“(尚未加载)”。 这是什么意思?我们已经构建了我们的资源包,它似乎很适合我们的项目。

上下文

不要被上下文吓到(你已经走得太远了!),但我们实际上是从 Unity 内的 SDK 中调出与此 View Controller 关联的 View 。也就是说,我们有一个由 Unity 创建的 XCode 项目,我们已将自己的 SDK 添加到该 XCode 项目中,并且此 View Controller 位于该 SDK 中。它也没有显示。

其他问题/搜索结果提到了异常或不同的错误。这只是来 self 们调试为什么 XIB 不会显示的日志语句;这不是异常(exception),它只是不显示。这是什么意思?

额外说明:我们的代码在更高版本的 Unity (4.1.2) 中运行良好。为了使其能够使用较旧的 Unity 版本 (3.5.7) 进行编译,我们必须修改 XCode 项目(Unity 吐出的)上的大量项目设置,并稍微更改代码。内部 SDK 代码本身没有更改:我们只更改了 Unity 吐出的 XCode 项目的文件和项目,这意味着问题可能是 1.) 我们的项目设置/XCode 项目更改或 2.) 旧版本中的某些内容Unity 或 iOS 版本。我想,第一步是理解“(尚未加载)”的含义!

最佳答案

(尚未加载)...

NSBundle 是图像和界面资源的容器,但它也是代码资源的容器。您可以在不加载代码资源的情况下实例化包,然后稍后显式加载它们(- isLoaded- load- loadAndReturnError:)。

确保所有资源都配置为在构建期间复制到您的包中。您可以在 Finder 中打开 bundle (右键单击并显示包内容)以验证它是否包含您期望的所有内容。

关于ios - nibBundleOrNil 返回包的名称和消息 "(not yet loaded)"意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16221576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com