Насколько хорошо поддерживается Objective-C ++? - программирование
Подтвердить что ты не робот

Насколько хорошо поддерживается Objective-C ++?

Я изучал Objective-C и Cocoa, проработав через Hillegass book, и мне приходит в голову, что я могу лучше использовать Objective-C ++. Objective-C кажется ясным выбором для разработки пользовательских интерфейсов, но у меня очень сильный фон на С++, и мне бы хотелось разработать образы приложений на С++ и использовать Objective-C ++ для интеграции с пользовательским интерфейсом. Но мне интересно, будет ли Apple продолжать разработку Objective-C ++ или он станет тупиком.

Есть ли кто-нибудь, используя Objective-C ++?

4b9b3361

Ответ 1

Отказ от ответственности: я не работаю или не говорю за Apple, так что это мое мнение:

Я не могу говорить о главных магазинах, но в моей небольшой группе мы использовали Objective-C ++ как для интеграции библиотек С++, так и для создания ссылок на С++. Как упоминает @alxp, такие вещи, как обработка исключений по языковой границе, болезненны, но при небольшом планировании большинство этих усилий можно избежать. Для опытных разработчиков С++ выигрыш может быть полезен для боли.

Что касается поддержки, я думаю, вы можете предположить, что поддержка в ее нынешнем состоянии не исчезнет в ближайшее время. Это часть кодовой базы GCC и Clang toolchain (следующая цепочка компилятора Apple) полностью поддерживает Objective-C ++. С другой стороны, нет никакой официальной гарантии того, что Apple продолжит разработку интеграции, например, некоторых бородавок.

Для текущих проектов я бы сказал, что если использование Objective-C ++ дает преимущество, то можно надеяться на существующую поддержку, и вы должны ее использовать.

Ответ 2

Единственными случаями, когда я использовал ObjС++, были библиотеки портов, чтобы сделать их доступными из моего кода ObjC. Столкновения между тем, как ObjС++ и ObjC обрабатывают такие вещи, как исключения и создание и уничтожение классов, просто сделали слишком много головной боли, чтобы жонглировать двумя языками в одном проекте.

Я не думаю, что поддержка скоро исчезнет, ​​как это произошло с Cocoa/Java, поскольку она довольно солидно входит в GCC, а тот факт, что Objective-C ++ компилируется до прямого С++ таким же образом, что Objective-C может скомпилироваться до прямой C, но я до сих пор не считаю это очень приятной средой для создания программного обеспечения по сравнению с Objective-C и возможностью комфортного использования фреймворков OS X.

Ответ 3

Objective-C ++, вероятно, останется поддержкой до тех пор, пока Objective-C. Obj-С++ является основной целью clang, который, как ожидается, в конечном итоге заменит gcc как предпочтительный компилятор Apple. Использование, вероятно, будет возрастать по мере того, как приложения Carbon будут перемещены на передние границы Cocoa.

Конечно, слово "вероятно" появляется дважды выше, потому что Apple настолько захватывающе непредсказуема.: -)

Ответ 4

Я подозреваю, что Apple продолжит поддерживать Objective С++ некоторое время, так как я не вижу каких-либо существенных повторяющихся усилий Apple, чтобы поддерживать Objective С++ как обновления Apple Cocoa и Objective С++.

Ответ 5

На днях я был удивлен, когда попытался реорганизовать некоторый код Objective-C, который был в файле Objective-C ++, используя поддержку рефакторинга Xcode. Несмотря на то, что элементы меню включены, я получил код Cant refactor Objective-C ++. Xcode может использовать только код C и Objective-C. сообщение об ошибке. Поэтому, хотя компиляция Objective-C ++ будет продолжать функционировать бесконечно, я подозреваю, что Objective-C ++ будет гражданином второго класса в Xcode.

Ответ 6

Я взял это из всего моего кода. Нет .mm файлов.

Но вам нужны файлы .cpp для работы с файлами .m. Это файл .c/.h, который сохраняет целостность гематоэнцефалического барьера.

С++ с objective-C обычно является слишком большим багажом.

Ответ 7

Objective-C - это всего лишь куча кода на языке C, который эмулирует объекты на языке C, и он все еще использует компилятор C, включая заголовочные файлы Objective-C. Использование Objective-C ++ использует компилятор С++ и включает заголовки Objective-C как код C, поскольку С++ запускает C-код. Objective-C ++ - это, по сути, только C, С++ и Objective-C (это действительно просто C)