Цель проекта C с использованием классов C ++ POSIX - PullRequest
0 голосов
/ 06 сентября 2010

Мне нужно создать программу для iOS, используя код некоторых классов C ++ POSIX.Я уже читал руководство «Использование C ++ с Objective-C» в Центре разработчиков Apple.Они описывают, как смешивать код C ++ и Objective C в файле .mm.

Мой вопрос: есть ли возможность использовать классы C ++ в моих файлах .h / .m обычного Objective C Project?

Или необходимо написать весь проект в этом стиле .mm с собственным основным?

Ответы [ 4 ]

2 голосов
/ 06 сентября 2010

Вы можете комбинировать в проекте любые типы файлов, например, .c, .m, .cpp и .mm, и компилятор выбирается автоматически в зависимости от расширения.Например, вы можете сохранить стандартный файл main.m, который поставляется с шаблоном XCode, и добавить новые файлы .h и .mm для использования Objective-C ++.

Другими словами, нет никаких различиймежду нормальным проектом Objective-C и проектом Objective-C ++ .Вам просто нужно использовать расширение .mm для конкретных файлов, которым требуется Objective-C ++.Это может быть использовано в любом проекте.

0 голосов
/ 18 марта 2013

Выберите каталог проекта в XCode. В настройках сборки нажмите «Компилировать источники как» - Objective-C ++ . Нет необходимости менять тип имени с .m на .mm.

0 голосов
/ 06 сентября 2010

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

Я использую C ++ в файлах .cpp, затем создаю несколько файлов .mm с заголовками, в которых нет C ++.в них.Эти файлы .mm являются оболочками obj-c для C ++.Затем C ++ «содержится» в исходных файлах posix, плюс несколько файлов, которые предоставляют классы C ++ и вызывают весь необходимый интерфейс.Как можно меньше файлов .mm - это хорошо.

Хранение C ++ в большей части вашего кода облегчает отладку и т. Д.

- Том

0 голосов
/ 06 сентября 2010

Вы должны принудительно скомпилировать файлы Obj-C, в которых вы хотите использовать C ++ до Obj-C ++ в меню сборки.Затем вы можете создавать и использовать объекты C ++ в ваших классах Obj-C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...