2015-09-17 8 views
8

Ho cercato di individuare una guida di transizione per Swift 2, in particolare di cui gli sviluppatori dovrebbero essere a conoscenza quando si esegue la migrazione delle codebase di Swift 1/1.2 su Swift 2. Ovviamente si ha l'assistente di migrazione in Xcode, ma quello copre davvero solo l'asino lavora e non le cose che richiedono un pensiero un po 'più intelligente.Lista di controllo per la migrazione a Swift 2 idiomatico (AKA dove si trova la guida di transizione di Swift 2)?

Sulla base delle risorse sono stato in grado di trovare lo Swift 2, ho messo insieme la seguente lista di controllo:

  • try/catch/tiro gestione degli errori - da utilizzare per gli errori recuperabili; rivedere di conseguenza il codice di gestione degli errori. In particolare, controllare tutti gli usi di NSError e richiamare i delegati per segnalare gli errori recuperabili.
  • Utilizzare enums conforme a ErrorType per definire i propri errori significativi.
  • Usa #available per l'accesso API di piattaforma più recenti - controllare l'uso di API contro app distribuzione di destinazione e rivedere di conseguenza
  • estensioni di protocollo - spostare quanto più codice possibile in questi per aiutare il riutilizzo. In particolare, le funzioni globali di refactoring nelle estensioni del protocollo.
  • annotazioni nullability & generici - rimuovere attacchi ridondante opzionale e tipo fusioni
  • Usa do { } per controllare la portata e libero grandi risorse primi
  • spostare vecchie do { ... } while loop per repeat { } (per rimuovere ambiguità e migliorare la leggibilità)
  • Usa guard per tornare in anticipo ed evitare il rientro eccessivo
  • Utilizzare defer per il codice di pulizia come chiudere i file ecc.
  • Utilizzare i set di opzioni ratto lei di OR-ing valori insieme (ad es. viewAnimationOptions = [.Repeat, .CurveEaseIn, .TransitionCurlUp])
  • Review public specificatori di accesso che in precedenza erano necessari solo per supportare il test. Utilizzare invece @testable e import MyApp.
  • movimento singolo caso switch dichiarazioni alla nuova if case .MyEnumCase(let value) = bar() where value != 42 { doThing(value) }
  • Utilizza "per ... a" filtro per ripulire for loop contenenti if dichiarazioni filtraggio esempio for value in mySequence where value != "" { }
  • il supporto nativo per i puntatori a funzione C - fornire utilizzando le chiusure o le funzioni globali (non catturare contesto locale quando farlo)
  • fissare eventuali nuovi lasciare avvertenze/var
  • correggere eventuali avvisi di variabili non utilizzate
  • inizializzatori Failable ora può restituire nil prima di chiamare super.init - rimuovere eventuali soluzioni alternative richieste. Gli inizializzatori designati devono ancora inizializzare tutte le proprietà memorizzate prima di restituire comunque zero.

Fonti:

https://developer.apple.com/swift/blog/?id=29

https://developer.apple.com/swift/

https://developer.apple.com/library/prerelease/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc7_release_notes.html#//apple_ref/doc/uid/TP40001051-CH5-SW1

https://developer.apple.com/videos/wwdc/2015/?id=106

http://www.raywenderlich.com/108522/whats-new-in-swift-2

Cosa mi sono perso?

Parte del problema è che Swift 2 ha continuato ad evolversi dopo il WWDC. Quindi anche i video WWDC di quest'anno sono potenzialmente obsoleti, o almeno non l'intera storia.

+2

Le cronologie di revisione per [The Swift Programming Language] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/RevisionHistory.html#//apple_ref/doc/uid/TP40014097- CH40-ID459) e [Uso di Swift con Cocoa e Objective-C] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/RevisionHistory.html#//apple_ref/doc/uid/ TP40014216-CH14-ID142) sono buoni posti per cercare anche i cambiamenti dettagliati. –

+1

Ci sono molti altri cambiamenti. La maggior parte delle funzioni globali sono ora diventate metodi di istanza, la stringa non è più enumerabile, alcuni metodi e protocolli sono stati rinominati ecc. Un'ulteriore buona risorsa per vedere i cambiamenti tra 1.2 e 2.0 è http://swiftdoc.org. – MirekE

risposta

1

Sfortunatamente, al momento non esiste una "guida di transizione" ufficiale da Apple in quanto tale.

The Swift Programming Language (Swift 2) viene sempre aggiornato da Apple ogni volta che rilascia una nuova versione di Swift ed è quindi una delle migliori fonti per informazioni aggiornate su Swift 2 (o successivo). C'è un sacco di spiegazioni e codice di esempio dell'intera lingua, non solo i cambiamenti, ma questa è sicuramente almeno una delle migliori fonti per le informazioni che stai cercando in questo momento.

Problemi correlati