Ich habe die Frage bezüglich der Suche nach der aktuellen Swift-Version mit dem Befehl swift --version
überprüft, aber wie kann ich meine Swift-Version von 3.1 auf 3.2 aktualisieren? (weil der Xcode 9 nur Swift 4.0 und Swift 3.2 unterstützt)
Um erfolgreich sowohl in Xcode 8 & amp; Xcode 9, ist es besser, Swift von 3.1 auf 3.2 zu aktualisieren. Aber wie?
Mein Ziel war es, sicherzustellen, dass sowohl Xcode 8 als auch Xcode 9, so dass die Veröffentlichung mit Xcode 8 in Ordnung wäre, und ausprobieren, dass die Funktion von Xcode 9 auch in Ordnung ist. Also werde ich den Code noch nicht auf "swift 4.0" upgraden, bis die offizielle Xcode 9.0 Edition veröffentlicht ist.
Nach meinem Test kann ich meinen Code von "swift 3.1" nach "3.2" nicht mit der "edit- & gt; convert" -Funktion von Xcode 8.3.3 konvertieren.
Der Grund, warum ich versuche, den Code in Swift 3.2 zu konvertieren, ist, dass ich einen Fehler von bekommen werde. Modul, das mit Swift 3.1 kompiliert wurde, kann nicht in Swift 4.0 importiert werden, wenn ich den Code mit Xcode 9 erstelle .
Swift 3.2 ist eine Notlösung, um Swift 3-Code unter Xcode 9 weiter zu verwenden, ohne Projekte vollständig in Swift 4 zu konvertieren.
Die in Xcode 8.3.3 enthaltene Swift-Version ist 3.1. Konvertieren Sie Ihren Code in Swift 3.2 unter Xcode 9 garantiert nicht, dass es noch unter Xcode 8 kompilieren wird.
Ich bin nicht sicher, Swift 3.1-Code als Swift 3.2 unter Xcode 9 zu kompilieren erfordert überhaupt eine Konvertierung, da beide die gleiche Syntax teilen. Möglicherweise müssen Sie einige API-Aufrufe korrigieren, um Änderungen in den neuen SDKs zu kompensieren.
Apple hat ein wenig mehr Informationen hier:
(aktualisiert)
In Bezug auf dein letztes Bild, wenn du den Quellcode für das Runes-Modul hast, musst du es unter Xcode 9 neu kompilieren. Das wird Swift 3.2 benutzen und erlauben, dass es in Swift 4 importiert wird.
Abhängigkeitsmodule / Frameworks in swift müssen mit xcode9 neu kompiliert werden, da swift nicht ABI-kompatibel ist / stabil . Wenn Sie Abhängigkeiten mithilfe von Paketverteilungssystemen wie Carthage oder Kakao-Pods eingebunden haben, werden die Module mit xcode9 neu kompiliert und Sie sollten dieses Problem nicht sehen. Wenn Sie Pakete verbinden, die im Binärformat erstellt wurden, können Sie auf das Problem
stoßenSie müssen es nicht konvertieren.
Swift 3.2 ist keine aktuelle Version. Es ist, wie Xcode 9 (und der Swift 4 Compiler) Swift 3 aufruft. (Ich denke, dass ich mich von Swift 3 unterscheiden kann, das mit Xcode 8 erstellt wurde).
Vom Optionsmenü: Bearbeiten - & gt; Konvertieren - & gt; Zur aktuellen schnellen Syntax
Die obigen Schritte helfen Ihnen, in die aktuelle schnelle Syntax zu konvertieren.