Я склонен согласиться с Джо Конвея и анализа Аарон Hillegass, поскольку сегодня сообщил Ole Бегеманн в http://oleb.net/blog/2012/01/initWithNibName-bundle-breaks-encapsulation/initWithNibName UIViewController: причина этого дизайна?
В основном, они утверждают, что имя файла СИБ является деталью реализации соответствующего класса UIViewController, и что это не бизнес вызывающего класса передать имя файла NIB в методе init.
Мне было интересно, была ли какая-либо особая причина для этого выбора дизайна у создателей AppKit/UIKit или если это просто ошибка, и, в последнем случае, почему это не было исправлено, когда вышел UIKit , что было бы хорошей возможностью.
Если какой-либо старинный таймер Objective-C может предоставить исторический фон этому, было бы неплохо лучше понять структуру, которую мы используем каждый день.
btw - если вы передадите 'nil' для имени ниба, контроллер будет загружен из Nib с тем же именем, что и сам класс, если он существует ... – nielsbot
Конечно. Это очень удобно, но в принципе инкапсуляция, по-видимому, по-прежнему нарушается по дизайну. – KPM