Как я могу использовать C ++ с Objective-C в XCode - PullRequest
21 голосов
/ 21 апреля 2010

Я хочу использовать / повторно использовать объект C ++ с Objective-C. У меня есть hello.h, который имеет определение класса, и hello.cpp для реализации класса.

class Hello
{ int getX() ... };

И я использую этот класс в функции Objective-C.

#include "hello.h"
...
- (IBAction) adderTwo:(id)sender
{
    Hello *hi = new Hello();            
    int value = hi->getX();
    NSLog(@"Hello %d", value);
    [textField setIntValue:value];

Когда я компилирую код в Xcode, я получаю это сообщение об ошибке.

class Hello *XXXXX
Users/smcho/Desktop/cocoa/adderTwo/hello.h:9:0
/Users/smcho/Desktop/cocoa/adderTwo/hello.h:9: 
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Hello'

Что пошло не так?

Ответы [ 2 ]

34 голосов
/ 21 апреля 2010

Убедитесь, что вы скомпилировали этот файл как "Objective-C ++".

Самый простой способ - переименовать его в *. Мм .

Если вы не хотите переименовывать файл * .m,

  1. Выберите ваш файл.
  2. Открыть диалоговое окно «Информация о файле» (Cmd + I)
  3. В поле «Тип файла» выберите «sourcecode.cpp.objcpp»
7 голосов
/ 21 апреля 2010

Переименуйте файл Objective-C с filename.m на filename.mm, чтобы он компилировался как Objective-C ++.

...