传递两个零参数initWithNibName:bundle:方法不好的做法(即不安全或较慢)?

根据UIViewController有关initWithNibName:bundle:的评论initWithNibName:bundle:

If you invoke this method with a nil nib name, then this class' -loadView method will attempt to load a NIB whose name is the same as your view controller's class.

我总是把我的鸟嘴命名为视图控制器。

这是一个不好的做法(即不安全,较慢或可能导致问题),只是将nil传递给两个参数而不是nib名称string?

想要做到这一点的主要驱动欲望是我发现在Xcode中使用重构选项不重命名的笔尖名称string(只有类名称,无论他们在哪里使用)。 因此,如果不小心回到这个地方重新命名,这会导致崩溃。

这不是不安全或缓慢。 这只是意味着将会有一个额外的检查,看看名称与您的类相同的NIB确实存在于该包中,那么就会像加载NIB名称一样加载它。 除非您决定改变您的NIB名称,否则不会造成问题。 面对面,关于-initWithNibName:bundle:是一个糟糕的初始化器,只是使用-init更好。