【发布时间】:2012-02-03 18:44:55
【问题描述】:
我的团队最近将一个相当大的项目转换为 ARC。转换进展顺利,应用程序运行良好,并且在 5.0 上运行良好。
问题出在 4.3 上。任何使用普通 init 在代码中实例化的视图控制器都不会加载 vc 视图的任何子视图(这在 5.0 上确实有效)
总结如下:
用[[MyViewController alloc] init] 实例化一个视图控制器。 (UIViewController的init调用initWithNibName:nil bundle:nil)
这会加载一个与视图控制器 (MyViewController.xib) 同名的 nib
*预期:nib 正常实例化,顶级视图的所有子视图和所有出口设置
*实际:nib 被实例化,并且 MyViewController 对象的 view 属性被设置。但是,视图的子视图数组是空的,并且这些视图的任何出口都为零,并且视图在呈现时显示为空
*解决方法:使用
实例化 VC/加载 nib[[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]
我无法在一个干净的项目中复制这一点,无论是从 ARC 开始还是转换为 ARC。我和我的团队正在努力解决这个问题,但与此同时,我想知道是否有其他人遇到过这个问题并找到了根本原因或触发因素。
【问题讨论】:
标签: objective-c ios automatic-ref-counting nib