Как использовать С++ с Objective-C в XCode
Я хочу использовать/повторно использовать объект С++ с 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'
Что пошло не так?
Ответы
Ответ 1
Убедитесь, что вы скомпилируете этот файл как "Objective-C ++".
Самый простой способ - переименовать его как *. мм.
Если вы не хотите переименовывать *.m файл,
- Выберите файл.
- Откройте диалоговое окно "Информация о файле" (Cmd + I)
- В "Тип файла" выберите "sourcecode.cpp.objcpp"
Ответ 2
Переименуйте файл Objective-C с filename.m
на filename.mm
, чтобы он скомпилировался как Objective-C ++.