Есть много причин, почему вы должны использовать перья и почему вы не должны.Нет однозначного ответа, и каждый ответ зависит от того, что вам нужно сделать.
Помимо очевидных преимуществ, которые предлагают Nibs (быстрый процесс создания пользовательского интерфейса, минимизировать код построения представления в файлах .m), они предлагают то, что вы можетеНе найти другого пути: решение проблем локализации.При переводе приложения на другие языки вы будете сталкиваться с фразами и вещами, для объяснения которых требуется 2-3 слова, а на другом языке - только один.Это серьезно приводит к ошибкам с неуместными представлениями внутри контроллера представления при использовании разных локализаций.Таким образом, вы можете иметь 2-3 вспомогательных наконечника для каждого наконечника в Xcode 4, и локализовать каждый из них так, как вам нравится, и размещать кнопки и представления в правильных местах, не беспокоясь о перемещении ваших представлений в зависимости от языкаПользователь имеет.Если бы вы делали все это с помощью кода, вы должны были бы поместить «если везде», и это, безусловно, плохая практика программирования и подвержена ошибкам.
Я создал несколько контроллеров представления, для которых потребовались бы сотни строк.настроить представления, если я не использовал конструктор интерфейса.
Тем не менее, NIB никогда не достигнут производительности создания представлений программным способом, поскольку каждый NIB является дескриптором представления, написанным на HTML / XML, и перед созданием любого представления файл должен быть прочитан с диска и проанализирован.В перьях также отсутствуют параметры настройки, которые есть у простого кода (тени, закругленные углы и другая магия кварца).Эти параметры настройки недоступны, поскольку существует много способов достижения того же результата с помощью кода, либо путем обращения к высокоуровневому уровню Core Animation, либо путем непосредственного обращения к QuartCore и CGGraphics и выполнения там тяжелых задач, что, безусловно, быстрее и рекомендуется в большинстве случаев.случаи (тени с использованием слоев могут быть очень медленными).Поэтому Apple не хочет ограничивать разработку определенным способом рисования вещей.
NIB существуют по определенной причине.Вы должны убедиться, что в своем заявлении вы понимаете причины создания NIB.Существуют перья для подключения кода к розеткам, облегчения локализации, ускорения разработки и очистки кода.Внутри проекта вы обязательно должны использовать Nibs, но вы также должны избегать их использования, когда простой код также даст вам те же результаты с минимальными или схожими усилиями.
И последнее, но не менее важное, примите во внимание управление памятью.Использование перьев повлияет на освобождение выделенных объектов, таких как IBOutlets.Если вы уверены, что созданный вами IBOutlet будет освобожден, когда вы захотите, не используйте NIB.вместо этого используйте простой код.