Comment puis-je utiliser C++ avec Objective-C dans XCode

Je veux utiliser / réutiliser l'objet C++ avec Objective-C. J'ai un bonjour.h qui a la définition de classe, et bonjour.rpc pour l'implémentation de la classe.

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

Et j'utilise cette classe dans la fonction Objective-C.

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

Lorsque je compile le code dans Xcode, je reçois ce message d'erreur.

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'est-ce qui a mal tourné?

21
demandé sur prosseek 2010-04-21 17:06:57

2 réponses

Assurez-vous de compiler ce fichier en tant que "Objective-C++".

La façon La plus simple est de renommer *.mm.

Si vous ne voulez pas renommer le *.fichier m,

  1. Sélectionnez votre fichier.
  2. ouvrez la boîte de dialogue Informations sur le fichier (Cmd + I)
  3. Dans Type de fichier, sélectionnez " code source.rpc.objcpp "
34
répondu kennytm 2010-04-21 13:11:11

Renommez le fichier Objective-C de filename.m à filename.mm pour le faire compiler en Objective-C++.

7
répondu Marcelo Cantos 2010-04-21 13:10:44