2014-10-13 15 views
10

für unser Projekt haben wir immer eine Quelldatei für beide Plattformen verwendet: iOS und OS X. Im Moment migriere ich zu swift. Leider gibt es einige Dateien, dieWie schreibe ich universellen Swift-Code für iOS und OS X. In Kakao könnte ich #ifdef verwenden, was mache ich jetzt?

import Cocoa 

und auf iOS

import UIKit 

zuvor brauchen wir

haben
#ifdef __MAC_OS_X_VERSION_MAX_ALLOWED 
#import <Cocoa/Cocoa.h> 
#else 
#import <UIKit/UIKit.h> 
#endif 

Wissen Sie, wie dies in geschickter kann getan werden? Ich möchte nicht jede Klasse zweimal schreiben, nur weil es keine Makros mehr gibt.

Vielen Dank im Voraus

Jack

Antwort

16

Verwendung:

#if os(OSX) 
    import Cocoa 
#elseif os(iOS) 
    import UIKit 
#endif 
+0

Heißt das, schließlich, dass es noch ein Präprozessor bauen mit swift ist? – JackPearse

+2

Schauen Sie sich die "Präprozessordirektiven" im Handbuch an: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithCAPIs.html#//apple_ref/doc/uid/TP40014216-CH8-XID_20 – Kirsteins

+0

Oh, ich habe dieses Kapitel nicht gesehen. Das ist sehr hilfreich. Danke vielmals. – JackPearse