Wie kann ich swift von 3.1 auf 3.2, aber nicht auf 4.0 aktualisieren?

8

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 .

    
JerryZhou 08.06.2017, 09:06
quelle

5 Antworten

5

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.

    
Matusalem Marques 08.06.2017 09:26
quelle
3

Sie können dies versuchen:

  • Erstellungseinstellungen - & gt; Swift Langauge Version - & gt; Swift 3.2.

  • Bearbeiten - & gt; Konvertieren - & gt; Zur aktuellen schnellen Syntax.

Hinweis: Diese Schritte verwenden Xcode 9

    
Sour LeangChhean 13.06.2017 09:50
quelle
2

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ßen     
rajagp 09.06.2017 14:13
quelle
1

Sie 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).

Ссылка

    
Fogmeister 08.06.2017 12:00
quelle
0

Vom Optionsmenü: Bearbeiten - & gt; Konvertieren - & gt; Zur aktuellen schnellen Syntax

Die obigen Schritte helfen Ihnen, in die aktuelle schnelle Syntax zu konvertieren.

    
devang bhatt 08.06.2017 09:10
quelle

Tags und Links