代码之家  ›  专栏  ›  技术社区  ›  Dan Ray

为什么视图控制器不能初始化(不要紧)

  •  2
  • Dan Ray  · 技术社区  · 15 年前

    OffersSearchController *searchController = [[OffersSearchController alloc]
            initWithNibName:@"This is a completely bogus nib name."
                 bundle:nil];
    

    一个投诉都没有。我见过这种构造崩溃,抱怨找不到名为“这完全是假的…”的笔尖,但这次没有。相反,我的searchController推到导航控制器上,就好像它已成功加载一样。不过,它是空的——我可以看到另一个视图的全屏,这是(意外地!)”在“我的UINavigationController堆栈”下面。

    这里发生了什么?是 [OffersSearchController alloc] 因为什么原因零分回来?

    loadView viewDidLoad . 哦。漫长的一周。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Dan Ray    15 年前

    以下是答案(感谢@Eric petroleje建议我发布并接受答案)。

    在星期五下午晚些时候的一次生产力爆发中,移动速度远远超过了推荐的速度,我在中设置了属性初始值设定项和选取轮数据源数组 -(void)loadView 而不是在 -(void)viewDidLoad .

    而不是 initWithNibName:

        2
  •  -2
  •   alexantd    15 年前

    The documentation for UIViewController initWithNibName:bundle 没有说明如果指定的nib名称无效会发生什么。假设这样,一个无效的nib名称被视为nil名称。但是,它确实指出返回值始终是一个初始化的UIViewController。

    因此,该代码所做的是分配/初始化一个没有nib的新offersearchcontroller。视图显示为空,因为它是空的。你可能从来没有真正看到过那次撞车,因为这是不应该的;发生的一切都很正常。

    推荐文章