Hinzufügen von C ++ - Objekt zu Objective-C-Klasse
Ich versuche zu mischen, C++ und Objective-C, die ich gemacht habe, es die meisten der Weg, aber würde gerne eine single-interface-Klasse zwischen dem Objective-C-und C++ - code. Deshalb würde ich gerne eine persistente C++ - Objekt in der ViewController interface.
Diese ausfällt, durch ein Verbot der Deklaration von 'myCppFile' mit Nein Typ:
#import <UIKit/UIKit.h>
#import "GLView.h"
#import "myCppFile.h"
@interface GLViewController : UIViewController <GLViewDelegate>
{
myCppFile cppobject;
}
@end
Allerdings funktioniert dies nur gut für die .mm Durchführung-Datei (Es funktioniert nicht, weil ich will cppobject zu bestehen zwischen den anrufen)
#import "myCppFile.h"
@implementation GLViewController
- (void)drawView:(UIView *)theView
{
myCppFile cppobject;
cppobject.draw();
}
InformationsquelleAutor der Frage Winder | 2010-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie verwenden opake Zeiger und enthalten ausschließlich C++ - Header in die Datei, die Ihr Objective-C-Klasse. So können Sie nicht zwingen, anderen Dateien enthalten die header zu verwenden Objective-C++:
InformationsquelleAutor der Antwort Georg Fritzsche
Stellen Sie sicher, dass alle Dateien, einschließlich
GLViewController.h
sind Objective-C++ - Quellen (*.mm).Beim einbinden von C++ code in den header der view-controller, alle Quellen, die den import dieser header muss in der Lage sein, es zu verstehen, also müssen Sie in Objective-C++
InformationsquelleAutor der Antwort oefe
Müssen Sie erklären, die C++ - Objekte in einem interface-block in Ihre .mm-Datei.
In .mm:
InformationsquelleAutor der Antwort pizzamonster
Ich glaube, Sie brauchen, um die folgenden flag
true
in Ihrem Projekt-Einstellungen:Dies sollte Ihnen ermöglichen, zu instanziieren C++ - Objekte in Ihre Objective-C-Klassen.
InformationsquelleAutor der Antwort Martin Cote