Hallo zusammen,
ich habe hier ein kleineres Problem mit einer Klasse, die als Objective-C++ implementiert wurde. Ich möchte diese Klasse gerne in einem reinen Objective-C Objekt verwenden.
Ich kann aber leider nicht einfach das passende Header File inkludieren, denn das enthält leider eine Menge C++ Nonsens, was dann zu Compiler-Fehler führt.
Also möchte ich das irgendwie abstrahieren, aber ich finde da nicht die richtige Strategie. Und ich brauche auch nicht die gesamte Klasse, sondern eigentlich möchte ich nur 2, 3 ausgewählte Methoden aufrufen.
Was habe ich bisher versucht:
Warum kann ich denn nicht einfach eine ObjC Message an ein Object schicken? Im schlimmsten Fall gibt des doch nur einen entsprechenden Log-Eintrag, oder?
Und wenn ich das Objekt auf mein Protocol teste (z.B. mit
Warum?
Wie kann ich also ein Objective-C++ in einem reinen Objective-C Kontext nutzen?
ich habe hier ein kleineres Problem mit einer Klasse, die als Objective-C++ implementiert wurde. Ich möchte diese Klasse gerne in einem reinen Objective-C Objekt verwenden.
Ich kann aber leider nicht einfach das passende Header File inkludieren, denn das enthält leider eine Menge C++ Nonsens, was dann zu Compiler-Fehler führt.
Also möchte ich das irgendwie abstrahieren, aber ich finde da nicht die richtige Strategie. Und ich brauche auch nicht die gesamte Klasse, sondern eigentlich möchte ich nur 2, 3 ausgewählte Methoden aufrufen.
Was habe ich bisher versucht:
- ich habe die Methoden, die ich nutzen möchte, als Protocol definiert
- ich habe die Header-Datei meines Protocols inkludiert, sowohl im Objective-C++, als auch im Objective-C Header
- ich habe die Objective-C++ Klasse mittels
@class
bekannt gemacht (forward declaration) und in meiner Objective-C Interface Definition als Variable myObject definiert. - myObject wird mittels getter/setter übergeben, es wird nicht mittels alloc/init erzeugt
[myObject Methode1]
dann gibt es einen Compiler Fehler:Receiver type 'myObject' for instance message is a forward declaration
Warum kann ich denn nicht einfach eine ObjC Message an ein Object schicken? Im schlimmsten Fall gibt des doch nur einen entsprechenden Log-Eintrag, oder?
Und wenn ich das Objekt auf mein Protocol teste (z.B. mit
if ([myObject conformsToProtocol: @protocol (PlayerInfo)]== YES)
, dann kommt da auch immer NO raus.Warum?
Wie kann ich also ein Objective-C++ in einem reinen Objective-C Kontext nutzen?