2010-04-21 10 views
21

Quiero usar/reutilizar objeto C++ con Objective-C. Tengo un hello.h que tiene la definición de clase y hello.cpp para la implementación de clase.¿Cómo puedo usar C++ con Objective-C en XCode

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

Y utilizo esta clase en la función Objective-C.

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

Cuando compilo el código en Xcode, aparece este mensaje de error.

 
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' 

¿Qué salió mal?

+0

de mayo de este ayuda así: https://stackoverflow.com/a/32546879/1306012 o http://philjordan.eu/article/mixing-objective-c-c++-and-objective-c++ –

Respuesta

34

Asegúrese de compilar ese archivo como "Objective-C++".

La manera más simple es cambiarle el nombre como * .mm.

Si no desea cambiar el nombre del archivo * .m,

  1. Seleccione su archivo.
  2. Abrir el archivo de información de diálogo (Cmd + I)
  3. En Tipo de archivo, seleccione "sourcecode.cpp.objcpp"
+0

Gracias hombre !! Me ayudaste a descubrir un problema similar que me tomó mis dos días locos. –

7

Cambie el nombre del archivo Objective-C de filename.m a filename.mm para que se compile como Objective-C++.

Cuestiones relacionadas