Lets Ich habe C++ Header wie:Objective C-Implementierung mit C++ Api
class Color
{
public:
Boolean OnInitDialog();
};
Könnte ich die Umsetzung in Objective tun mit so etwas wie:
-(BOOL) OnInitDialog
{
...
return TRUE;
}
Lets Ich habe C++ Header wie:Objective C-Implementierung mit C++ Api
class Color
{
public:
Boolean OnInitDialog();
};
Könnte ich die Umsetzung in Objective tun mit so etwas wie:
-(BOOL) OnInitDialog
{
...
return TRUE;
}
Sie könnten eine Objective-C-Klasse erstellen und dann einen C++ - Wrapper dafür schreiben. Etwas nach dem Vorbild von
color.h
@interface Color : NSObject
{
...
}
- (BOOL) onInitDialog;
@end
color.m
#import "color.h"
@implementation Color
- (BOOL) onInitDialog
{
return YES;
}
@end
colorwrapper.h
#ifdef __OBJC__
@class Color;
#else
struct Color;
#endif
class ColorWrapper
{
Color *color;
public:
Boolean OnInitDialog();
};
colorwrapper.mm
#include "ColorWrapper.h"
Boolean ColorWrapper::OnInitDialog()
{
return [color onInitDialog];
}
Natürlich ist das nicht vollständiger Code und ist wahrscheinlich nicht ganz richtig ... aber Sie bekommen die allgemeine Idee.
Ich glaube nicht, dass das möglich ist.
Sie können jedoch C++ - Code in Ihrer Implementierung verwenden, indem Sie einfach die Datei .mm
anstelle von .m
benennen.
Neugierig, warum möchten Sie so etwas tun?
Ich modifiziere eine existierende C++ - Implementierung und ich wollte auch die Funktion ObjC styled machen, eine Sprache, die mir vertrauter ist. – Icestorm
kampf. Ohne durch einen "Wrapper" zu gehen, wie filipe erwähnt, steckst du in C++ - lande jetzt :) –
Wenn Ihre Kopfzeile C++ ist, sollte Ihre Implementierung C++ sein. Wenn Ihre Kopfzeile Objective C ist, sollte Ihre Implementierung Objective C sein.
Sie könnten C++ und Obj-C zusammen verwenden. http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocCPlusPlus.html
Wirklich großartige Idee! – Icestorm