Да, можно просто использовать C++ (т.е. запись его в *.cpp файлах) и даже смешать C++, и Objective C внутри *.mm файлы (стандартный код Objective C хранится в *.m файлах).
, Конечно, все еще необходимо использовать Objective C для пользовательского интерфейса и создать обертки Objective C для объектов C++. Другая опция состоит в том, чтобы переключиться на Qt, который является Платформой C++, которая поддерживает Windows, Mac OS X и Linux - и будет выпущена под LGPL со следующей версией 4.5.
Основное различие между пользовательским элементом управления, настраиваемым элементом управления и компонентом заключается в том, что они наследуются с разных уровней в дереве наследования:
MyComponent
|-> Component
MyCustomControl
|-> Control
|-> Component
MyUserControl
|-> ContainerControl
|-> ScrollableControl
|-> Control
|-> Component
Итак, короче говоря, вы получаете разный объем предварительно запрограммированных функций с различными параметрами.
Когда бы вы использовали разные варианты? (это мысли и мнения, а не истина)
Помимо того, что сказал Фредрик, обычно компоненты и пользовательские элементы управления будут использоваться, когда вы планируете повторно использовать их в проектах. Используйте пользовательские элементы управления, если вы собираетесь использовать их только в одном проекте.