Передает два параметра 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 class.

Я всегда называю мои наконечники такими же, как контроллер вида.

Является ли это плохой практикой (то есть небезопасной, медленной или вероятной причиной проблем в будущем), чтобы просто передать ноль для обоих параметров вместо строки имени ниба?

Основным побуждением к желанию сделать это я обнаружил, что использование опции refactor в Xcode не переименовывает строки имени ниба (только имена классов, где бы они ни использовались). Таким образом, это приводит к сбоям, если вы не будете осторожны, чтобы вернуться и переименовать их повсюду.

Ответ 1

Это небезопасно или медленно. Это просто означает, что будет дополнительная проверка, чтобы увидеть, что NIB с тем же именем, что и ваш класс, действительно существует в комплекте, тогда он будет загружен точно так же, как если бы вы передали имя NIB. Это не вызовет проблем, если вы не решите изменить название своего NIB. На первый взгляд, существует целая дискуссия о том, как -initWithNibName:bundle: - плохой инициализатор, и лучше использовать -init.