Migliore risposta
Non puoi sempre utilizzare guard
perché ciò richiede unuscita anticipata. Non esiste un costrutto if let
negato, tuttavia lo snippet di codice non mostra realmente il caso interessante in cui è mancato di più.
Se il tuo codice non ha davvero bisogno date
dopo if
, non è necessario “non utilizzare if let
, basta provare se lespressione è nil
(nota, codice semplificato alla sintassi Swift3 per pertinenza e brevità):
if UserDefaults.standard.objectForKey("first\_launch\_date") == nil {
UserDefaults.standard.set(date, forKey: "first\_launch\_date")
}
Ma supponendo che il tuo codice desideri per utilizzare date
dopo if
(altrimenti perché dovresti dargli un nome), allora hai bisogno di qualcosa di un po più scomodo, che finisce dopo tutto con qualcosa nel if
caso:
let date: Date
if let existingDate = UserDefaults.standard.objectForKey("first\_launch\_date") {
date = existingDate
} else {
date = Date()
UserDefaults.standard.set(date, forKey: "first\_launch\_date")
}
Il caso che delude davvero me, tuttavia, è quando si utilizza if let
in una catena di else if
. Spesso (quasi la metà delle volte?) La logica della catena di condizioni vuole testare una serie di negativi finendo con il caso dellaltro come lunica condizione positiva. Tuttavia, se una delle condizioni richiede un if let
, allora sei costretto a esprimere la logica come un test per positivo con il caso else come negativo.
Esempio in pseudocodice:
if error {
failure
} else if unexpected-format {
failure
} else if parse-failed {
failure
} else if result is a {
handle result a
} else {
handle result b
}
Se limplementazione di questo in swift comporta lo scartare un facoltativo durante il test di analisi, come if let result = parse()
, allora ” dobbiamo deformare la logica da fallimento-fallimento-successo a fallimento-successo-fallimento. Esempio con uno pseudocodice più rapido:
if error {
failure
} else if unexpected-format {
failure
} else if let result = parse() {
if result is a {
handle result a
} else {
handle result b
}
} else {
failure
}
Yuck. Potenzialmente un if not let
consentirebbe la logica originale:
if error {
failure
} else if unexpected-format {
failure
} else if not let result = parse() {
failure // unlike if let, result not available to this code block
} else if result is a { // however it would be to everything after
handle result a
} else {
handle result b
}
Qualcuno dovrebbe scrivere una proposta per una rapida evoluzione.
risposta
- Registrati per un account sviluppatore Apple gratuito
- Comprendi a partire da oggi (4 giugno 2016) Non ci sono tutorial per Swift 3.0 poiché sarà svelato al WWDC la prossima settimana. Gli autori impiegheranno almeno 3 mesi per preparare nuovi libri e tutorial per Swift 3.0. Leccezione sarà Erica Sadun, che è molto diligente e proattiva nel portare i suoi libri allultima versione di Swift.
- {New} A partire da oggi (13 giugno 2016) Apple ha annunciato Playgrounds per iPAD, che sembra un ottimo modo per i principianti di imparare Swift. INOLTRE, Apple ha pubblicato un nuovo eBook chiamato \_App Development with Swift\_ che è unaltra buona risorsa per il principiante assoluto della lingua.
- Evita qualsiasi cosa su Swift 1.0 e stai lontano dalla maggior parte informazioni su 2.0 e 2.1 e cerca di trovare informazioni da fonti nella versione 2.2 di Swift o superiore. Inoltre, cerca di evitare qualsiasi materiale con le informazioni più recenti prima di novembre 2015. Questo cambierà tra pochi mesi dopo che Swift 3.0 sarà più disponibile. Ci sono alcune modifiche significative alla sintassi e alla libreria e provare a seguire i tutorial scritti in versioni precedenti potrebbe essere difficile.
- Ottieni una copia dei manuali Swift di Apple da iBooks. Questi dovrebbero essere i primi aggiornati con Swift 3.0
- Sfoglia quei manuali
- Se hai già programmato in altre lingue in precedenza, presta maggiore attenzione ai costrutti specifici di Swift come Apple e terze parti gli esempi di software probabilmente li utilizzeranno.
- enumerazioni
- opzionali
- controllo degli errori
- chiusure (sintassi e conc e possono essere difficili da comprendere)
- strutture contro classi contro protocolli contro enumerazioni
- progettazione orientata al protocollo
- Conteggio dei riferimenti
- stringhe
- generici
- Libreria Swift
- aspetti funzionali del linguaggio (relativi a chiusure e libreria)
- Sfoglia e / o acquista 1-2 eBook (o libri fisici) su Swift. Ci sono molti buoni libri.
- Ci sono molte più informazioni e tutorial scritti in attesa che tu stia programmando iOS e Mac OS
- Determina se sei più interessato ai giochi o alla produttività e concentrati di più su uno di questi. Ci sono diversi libri e tutorial scritti per la fuga damore nel gioco e in qualche modo penso che i giochi siano un posto più facile da imparare.
- Se non hai mai scritto alcuna applicazione Apple, il mio suggerimento è di imparare Swift senza preoccuparti troppo molto su Objective-C. Dichiarazione di non responsabilità: non mi piace molto Objective-C. Se disponi di codice legacy in Objective-C, vai assolutamente a conoscere il collegamento e linter-utilizzo di Objective-C e Swift. I tutorial Swift forniranno la base di ciò che devi sapere e non te ne sfuggirai completamente perché molte / la maggior parte delle librerie / framework di Cocoa sono tutti scritti in Objective-C.
- Se hai una carta di credito o pay pal, iscriviti a Lynda. com per un mese gratis e guarda tutti i video che puoi di Simon Allardice e altri su Swift (e concetti generali di programmazione se ne hai bisogno)
- Fai lo stesso su Pluralsight. com .
- Sfoglia il sito di Apple Deve per tutti i documenti di riferimento e come accedervi da x-Code. Si spera che tu abbia già utilizzato X-Code. In caso contrario, i tutorial avrebbero dovuto fornire informazioni sufficienti per iniziare. Questo è importante.
- Vai a RayWenderlich. com e guarda tutti i video e gli eBook di Swift che puoi. Per vedere tutti i libri, puoi registrarti e / o acquistare i materiali lì. Fai in modo che tu sia ben riposato e fai effettivamente i tutorial da solo . Questa è la chiave.
- Guarda i video precedenti del WWDC di Apple su Swift. Leggi i manuali di Apple Swift con più attenzione.
- Prova a scrivere la tua applicazione. Questo mostrerà dove hai posti che devi rivedere o imparare meglio.
- Prova a seguire il corso iTunes University / Stanford sullo sviluppo iOS in Swift. Vedi se riesci a tenere il passo. Questo non è un corso per principianti contrariamente a quello che ti diranno gli altri.
- Ho visto molti, molti video tutorial diversi su Youtube. Per me, per la maggior parte, lunica cosa buona di loro è che sono gratuiti. Dopo averli confrontati con i tutorial che ho elencato in precedenza, ti chiederai perché stavi sprecando il tuo tempo con loro. Ci sono delle eccezioni, ma passerai molto tempo a guardarle. Apprezzo che le persone vogliano creare i propri video. Ho anche provato una volta. Quindi so quanta energia i professionisti mettono nel rendere le cose chiare e comprensibili.
- Ora, dopo aver dissentito il materiale gratuito di YouTube, guarda alcuni di quei video e vedi se aiutano a riempire alcune informazioni mancanti o no . È positivo avere prospettive alternative.
- Iscriviti alle newsletter online di Swift. RayWenderlich ha una buona lista per iniziare.
- Leggi alcuni dei miei e altri post su questo argomento. Probabilmente è necessario capire come unire domande / risposte.