为什么bundle在initWithNibName之后是nil? Objective-C的

时间:2011-08-17 08:44:08

标签: objective-c bundle

我想知道:为什么我们将“bundle”设置为“nil”,当我们分配init-init一个viewController时?

示例:

  

MyViewController * viewController = [[MyViewController alloc] initWithNibName:@“MyViewController”bundle:nil];

由于

3 个答案:

答案 0 :(得分:6)

如果bundle为nil,则此方法在主bundle中查找nib文件。这与传递[NSBundle mainBundle]

相同

请参阅UIViewController class reference

答案 1 :(得分:2)

正如文档中所述:

参数 - nibBundle

要在其中搜索nib文件的包。此方法首先在bundle的特定于语言的项目目录中查找nib文件,然后是Resources目录。如果为nil,则此方法在主包中查找nib文件。

由于你的笔尖在主包中,你可以将该参数设置为nil。如果不是,你必须告诉它在哪里搜索。

答案 2 :(得分:2)

使用nil相当于使用[NSBundle mainBundle]。阅读documentation

一般情况下,如果您对Apple提供的课程中的方法有任何疑问,请先到阅读官方文档,然后再访问此处:)