Erstellen einer plattformübergreifenden iOS / OS X-Klasse

Ich habe viele Fragen zum Erstellen einer plattformübergreifenden Bibliothek für diese beiden Systeme gelesen. Jede Antwort verweist auf eine statische Bibliothek als Lösung.

Ich möchte nicht mit einer statischen Bibliothek enden, sondern eine Klasse mit Methoden für iOS und deren Gegenstück für OS X erstellen.

-(void)createColor:(NSColor*);
-(void)createColor:(UIColor*);

Das erste Problem, das ich habe, ist, dass ich keine Möglichkeit finde, Klassen zu verwenden, die nur in einem bestimmten System verfügbar sind. Wie könnte ich zum Beispiel eine Funktion verwalten, die funktioniert?UIColor in iOS und mitNSColor in OS X?

Wenn ich ein Projekt für iOS erstelle, wenn ich es mir anschaueFoundation.h Ich kann nicht findenNSColor.h in der Header-Liste.

Ich dachte, das zu benutzenTARGET_OS_MAC undTARGET_OS_IPHONE Definitionen zur Unterscheidung der beiden Systeme ... bin ich auf dem richtigen Weg?

BEARBEITEN, um weitere Informationen hinzuzufügen:

Im Moment habe ich 2 Ziele: eine iOSTestApp und eine OSxTestApp. Für diese Ziele habe ich je nach System die benötigten Frameworks eingebunden.

VerwendenTARGET_OS_MAC undTARGET_OS_IPHONE funktioniert nur, wenn ich die OSXTestApp als aktives Ziel auswähle. Wenn ich den iOSAppTest auswähle, gibt Xcode Fehler für den OS X-Datentyp zurück (d. H.NSColor)

Hier ein Beispiel für den Code, der diese Fehler erzeugt:

#if TARGET_OS_MAC
-(void)createColor:(NSColor*)color;    

#elif TARGET_OS_IPHONE
-(void)createColor:(UIColor*)color;

#endif

Während, wenn ich die Definitionen invertiere, es funktioniert ... Hier ein Beispiel des Codes, der diese Fehler erzeugt:

#if TARGET_OS_IPHONE
-(void)createColor:(UIColor*)color;

#elif TARGET_OS_MAC
-(void)createColor:(NSColor*)color;

#endif

Antworten auf die Frage(3)

Ihre Antwort auf die Frage