Estoy tratando de mezclar C++ y Objective-C, he hecho la mayor parte del camino pero me gustaría tener una única clase de interfaz entre el código Objective-C y C++. Por lo tanto, me gustaría tener un objeto C++ persistente en la interfaz ViewController.Agregar Objeto C++ a Objective-Clase C
Esta falla al prohibir la declaración de 'myCppFile' sin ningún tipo:
#import <UIKit/UIKit.h>
#import "GLView.h"
#import "myCppFile.h"
@interface GLViewController : UIViewController <GLViewDelegate>
{
myCppFile cppobject;
}
@end
Sin embargo, esto funciona bien en el archivo de implementación .mm (No funciona porque quiero cppobject persista entre llamadas)
#import "myCppFile.h"
@implementation GLViewController
- (void)drawView:(UIView *)theView
{
myCppFile cppobject;
cppobject.draw();
}
Gracias, las otras sugerencias no parecían funcionar y terminé declarando mi objeto como un "id *" y luego lo fundí en el tipo correcto donde quiera que lo use. Esto parece ser la misma idea, pero es mucho más limpio ya que no tengo que hacer todos los moldes extra. – Winder
Yo siempre preferiría los punteros opacos sobre los moldes; podría ser un poco más trabajo, pero usted recupera la seguridad total. –
He estado jugando con punteros opacos para esto, que utilizo extensivamente para el envoltorio de C/C++, pero hasta ahora no he visto el beneficio real. ¿Puede comparar este estilo (junto con algún código que muestra cómo se asigna y libera "opaco") al estilo basado en void * aquí: http://robnapier.net/blog/wrapping-c-objc-20 –