Laut Apple-Ingenieur Elizabeth Reid "Shim" Shimmen ist, wenn Sie die bedingte Kompilierung verwenden, um Code zwischen iOS und OS X. Zum Beispiel wiederzuverwenden:in Swift
#if TARGET_OS_IPHONE
@import UIKit;
#define BaseView UIView
#else
@import AppKit;
#define BaseView NSView
#endif
@interface MyView : BaseView
@end
In der WWDC 2014 Sitzung Sharing code between iOS and OS X sie sagt auch:
Wenn Sie wörtlich übersetzen, wie Sie mit Objective-C Shim würden, wird diese nicht in Swift kompilieren.
Es gibt Möglichkeiten, Ihren Code in Swift zu spiegeln.
Aber es wird komplizierter als Ihre grundlegende bedingte Kompilierung , die wir in Objective-C verwenden können.
Also, welche Möglichkeiten gibt es, um Ihren Code in Swift zu "shim"?
auf dieser einen Blick: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/ InteractingWithCAPIs.html, insbesondere die _complementary compilation statements_. Das könnte eine Antwort auf Ihre Frage sein. – holex
@holex Aus demselben Dokument: "Im Gegensatz zu den Bedingungen-Kompilierungsanweisungen im C-Präprozessor müssen bedingte Kompilierungsanweisungen in Swift vollständig eigenständige und syntaktisch gültige Code-Blöcke umgeben." Bei einem erneuten Lesen denke ich, dass Reid es mit "komplizierter" gemeint haben könnte. – hpique