我们有一个控制器,它是 UIViewController 的后代。也就是说,类似:
- UIView 控制器
- BaseViewControllerChild
- ViewControllerInQuestion
当我们尝试显示这个 ViewControllerInQuestion 时,它没有显示出来。我们碰巧在 init 方法中有一个 log 语句。
-(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 中调出与此视图控制器关联的视图。也就是说,我们有一个由 Unity 创建的 XCode 项目,我们已经将我们自己的 SDK 添加到该 XCode 项目中,并且这个 viewcontroller 在那个 SDK 中。它也没有出现。
其他问题/搜索结果提到了异常或不同的错误。这只是来自这个日志语句,因为我们调试了为什么 XIB 不会出现;这不是一个例外,它只是不显示。这是什么意思?
额外说明:我们的代码在更高版本的 Unity (4.1.2) 中运行良好。为了让它与旧版 Unity (3.5.7) 一起编译,我们必须修改 XCode 项目(Unity 吐出的)上的许多项目设置并稍微更改代码。内部 SDK 代码本身没有更改:我们只更改了 Unity 吐出的 XCode 项目的文件和项目,这意味着问题可能是 1.) 我们的项目设置/XCode 项目更改或 2.) 旧版本中的某些内容Unity 或 iOS 版本。第一步是了解“(尚未加载)”的含义,我想!