Objective C с некоторым кодом C ++ не будет компилироваться - PullRequest
8 голосов
/ 14 августа 2011

У меня есть проект Objective C с некоторым кодом C ++, и, конечно же, код C ++ не будет компилироваться

Я понимаю, что компилятор делает предположения о том, какой язык компилировать, но я уже видел это приложение запущенным ранее, поэтому мне интересно, как заставить мой Xcode 4 выполнить компиляцию этого проекта

есть. Это объявление функции вызывает ошибку, так как компилятор не распознает синтаксис c ++ std::

 std::string string_with_formatting(const unsigned int value)
 {

Как мне обойти это? Что мне нужно иметь #include или #import

Ответы [ 3 ]

10 голосов
/ 14 августа 2011

Objective-C ++ является надмножеством C ++. Вы можете использовать C ++ в Objective-C ++ источниках.

  1. Убедитесь, что файл имеет расширение .mm, в противном случае он будет обрабатываться как Obj-C, а не Obj-C ++
  2. #include <string>
0 голосов
/ 14 августа 2011

Измените этот файл на .mm, а также любой другой, который включает этот файл (или файлы, сопровождающие .h).

0 голосов
/ 14 августа 2011

цель C не имеет понятия std :: string. Вам нужно использовать что-то вроде NSString

...