Mit Swift 2.2 können wir jetzt die #if swift(>=x.y)
Version Build-Konfiguration verwenden, as proposed in SE-0020 of Swift evolution.Swift 2.2: #if swift (> = x.y) Version Build-Konfiguration: Kann es verwendet werden, um Unterversionen zu überprüfen? (Z. B. Swift 2.1 von 2.1.1 unterscheiden)
#if swift(>=2.2)
print("Active!")
#else
this! code! will! not! parse! or! produce! diagnostics!
#endif
Ich habe versucht, aus Neugier, um zu versuchen, diesen unteren Subversion Pegelvergleich mit einem Schritt zu verwenden (zB >=2.1.1
ohne Swift vorbei 2.1
von XCode 7.1 Beta 2), aber meine eigenen Versuchen, don‘ t wirklich funktionieren:
>=x.y.z
einen Fehler ergibt,erwartet benannte Mitglied Zahlenliteral
>=x.y
mity = 11
kompiliert natürlich und Pässe, sondern als Version sind wir sehen noch,2.11
.
Ich kann keine weiteren Details dazu in der XCode 7.3 release notes finden.
Frage: Ist diese neue Version Build-Konfiguration auf eine einzige .y
Subversion beschränkt, oder gibt es einen Trick, dies zu umgehen?
von Ihrem Link .... "Im Moment werden wir nur bis zu zwei Versionskomponenten erwarten, da es unwahrscheinlich ist, dass eine Syntaxänderung es in einer +0.0.1 Revision machen wird." nur zwei Komponenten der Version ist die Antwort – user3441734
@ user3441734 jeez, habe ich total vermisst, danke! (Fühlen Sie sich frei, als Antwort hinzuzufügen) – dfri
@ user3441734 Ich habe jetzt auch gefunden [dieser Beitrag aus der Swift Evolution Thread] (https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151214/ 003455.html), wo Douglas Gregor schreibt _ "Zwei Ebenen der Versionsnummer sollten ausreichen." _, Als ein akzeptabler Nebeneffekt der Verwendung eines Fließkomma-Literals in der '#if swift (> = ....) Signatur (anstatt, sagen wir, eine Saite, "2.1.1"). So scheint es, dass die Beschränkung von zwei Versionskomponenten keine aktive Wahl (ein Effekt) war, sondern eher eine der Bequemlichkeit, w.r.t. Fließkomma-Literale anstelle von String-Literalen vergleichen. – dfri