Checkliste für die Migration auf idiomatische Swift 2 (AKA wo ist der Swift 2 Transition Guide)?

8

Ich habe versucht, eine Übergangsanleitung für Swift 2 zu finden, insbesondere Entwickler, auf die Entwickler bei der Migration von Swift 1 / 1.2-Codebasen auf Swift 2 achten sollten. Offensichtlich haben Sie den Migrationsassistenten in Xcode, aber das nur wirklich deckt die Arbeit des Esels ab und nicht die Sachen, die etwas intelligenteres Denken erfordern.

Basierend auf den Ressourcen, die ich auf Swift 2 finden konnte, habe ich die folgende Checkliste zusammengestellt:

  • try / catch / throw Fehlerbehandlung - wird für behebbare Fehler verwendet; überarbeiten Sie den Fehlerbehandlungscode entsprechend. Überprüfen Sie insbesondere alle Verwendungen von NSError und rufen Sie Delegaten erneut auf, um behebbare Fehler zu melden.
  • Verwenden Sie enums konform zu ErrorType , um eigene sinnvolle Fehler zu definieren.
  • Verwenden Sie #, um auf neuere Plattform-APIs zugreifen zu können. - Überprüfen Sie die API-Verwendung für das App-Deployment-Ziel und überarbeiten Sie es entsprechend
  • Protokollerweiterungen - Verschieben Sie so viel Code wie möglich in diese, um die Wiederverwendung zu erleichtern. Insbesondere Refactoring Global Functions in Protokollerweiterungen.
  • nullability Annotationen & amp; Generika - entfernen Sie redundante optionale Bindungen und geben Sie Castings ein
  • Verwenden Sie do { } , um den Bereich zu steuern und große Ressourcen frühzeitig freizugeben
  • Verschieben Sie alte do { ... } while Schleifen in repeat { } (um Zweideutigkeiten zu entfernen und die Lesbarkeit zu verbessern)
  • Verwenden Sie guard , um früh zurückzukommen und übermäßige Einrückungen zu vermeiden
  • Verwenden Sie defer für Bereinigungscode wie das Schließen von Dateien usw.
  • Verwenden Sie Optionssätze anstelle von OR-Werten zusammen (z. B. viewAnimationOptions = [.Repeat, .CurveEaseIn, .TransitionCurlUp] )
  • Überprüfen Sie public accessor specifiers, die bisher nur zur Unterstützung von Tests benötigt wurden. Verwenden Sie stattdessen @testable und import MyApp .
  • Verschieben Sie die switch -Anweisungen für Einzelfälle auf die neue if case .MyEnumCase(let value) = bar() where value != 42 { doThing(value) }
  • Verwenden Sie die Filterung "for ... in", um for loops mit if filtering statements z. %Code%
  • native Unterstützung für C-Funktionszeiger - bieten Sie die Verwendung von Closures oder globalen Funktionen (erfassen Sie dabei keinen lokalen Kontext)
  • behebt neue var-Warnungen
  • Fix alle nicht verwendeten Variablen Warnungen
  • Failable-Initialisierer können jetzt nil zurückgeben, bevor sie super.init aufrufen - entfernen Sie alle zuvor benötigten Umgehungen. Designierte Initialisierer müssen noch alle gespeicherten Eigenschaften initialisieren, bevor sie jedoch nil zurückgeben.

Quellen:

Ссылка

Ссылка

Ссылка

Ссылка

Ссылка

Was habe ich verpasst?

Ein Teil des Problems besteht darin, dass sich Swift 2 über die WWDC hinweg weiterentwickelt hat. Selbst die diesjährigen WWDC-Videos sind bereits potenziell veraltet oder zumindest nicht die ganze Geschichte.

    
Andrew Ebling 17.09.2015, 08:14
quelle

1 Antwort

1

Leider gibt es zu dieser Zeit keinen offiziellen "Übergangsleitfaden" von Apple als solcher.

Die Die Swift-Programmiersprache (Swift 2) wird immer von Apple aktualisiert, wenn sie eine neue Version von Swift veröffentlicht und ist daher eine der besten Quellen für aktuelle Informationen über Swift 2 (oder höher). Es gibt viele Erklärungen und Beispielcode der gesamten Sprache, nicht nur die Änderungen, aber dies ist definitiv zumindest eine der besten Quellen für die Informationen, die Sie gerade suchen.

    
Max Goodridge 03.10.2015 23:26
quelle

Tags und Links