Когда создавать подключаемый модуль Interface Builder для пользовательского представления?

Когда вы рекомендуете интегрировать настраиваемое представление в Interface Builder с помощью подключаемого модуля? Просматривая Apple Руководство по программированию подключаемого модуля Interface Builder, я обнаружил:

  • Are your custom objects going to be used by only one application?
  • Do your custom objects rely on state information found only in your application?
  • Would it be problematic to encapsulate your custom views in a standalone library or framework?

If you answered yes to any of the preceding questions, your objects may not be good candidates for a plug-in.

Это отвечает на некоторые из моих вопросов, но мне все равно хотелось бы узнать ваше мнение о том, когда это будет хорошей идеей. В чем заключаются преимущества и насколько велики затраты времени?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
8
0
3 658
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я думаю, что рекомендации Apple хорошо резюмируют это.

Если вы пишете элемент управления, который будет использоваться в нескольких приложениях и является полностью универсальным, то создание настраиваемого объекта - хорошая идея. Вы сможете визуализировать внешний вид и установить свойства непосредственно из Интерфейсного разработчика.

Если ваш контроль ограничен одним приложением или тесно связан с вашими данными, то перенос его в настраиваемый объект действительно не принесет вам многого.

Создать собственное представление несложно, существует множество простых руководств.

Ответ принят как подходящий

Совершенно разумно вынести классы представления и контроллера, которые использует ваше приложение, в отдельную структуру, встроенную в оболочку вашего приложения, для которой вы также создаете подключаемый модуль Interface Builder.

Среди других причин классы, которые обычно используются в вашем приложении, могут быть затем настроены в точке их использования в Интерфейсном Разработчике, а не в разрозненных реализациях -awakeFromNib. Это также единственный способ сделать так, чтобы ваши объекты отображали привязки, которые можно настроить в Интерфейсном Разработчике.

Это немного кода, но для классов представлений и контроллеров, которые используются более чем в одном месте и которые требуют дополнительной настройки, прежде чем они будут фактически использованы, вы, вероятно, сэкономите кучу времени в целом. И ваш опыт разработки с вашим собственным контроллером и классами представлений будет похож на разработку с использованием Cocoa.

Я согласен. Но я бы добавил классы представления непосредственно в целевое приложение, а не в отдельную платформу, даже если она встроена в пакет приложения.

Sven 09.09.2010 15:36

Другие вопросы по теме