是传递两个nil参数initWithNibName:bundle:方法坏的做法(即不安全或较慢)



根据UIViewController关于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.

我总是用与视图控制器相同的名字来命名我的nib。

这是一个不好的做法(即不安全,较慢,或可能导致问题的道路),只是传递nil给两个参数,而不是笔尖名称字符串?

这样做的主要动机是我发现在Xcode中使用重构选项不会重命名nib名称字符串(只重命名类名,无论它们在哪里使用)。因此,如果不小心返回并在各处重命名这些文件,就会导致崩溃。

不安全也不慢。它只是意味着将有一个额外的检查,以查看与您的类同名的NIB是否确实存在于bundle中,然后它将被加载,就好像您已经传递了NIB名称一样。除非您决定更改nib的命名方式,否则不会引起问题。在面对,有关于-initWithNibName:bundle:是一个坏的初始化器的整个讨论,只是使用-init是更好的。

相关内容

最新更新