Cel mai bun răspuns
Nu puteți folosi întotdeauna guard
deoarece acest lucru necesită o ieșire timpurie. Nu există nici o construcție if let
negată, cu toate acestea, fragmentul de cod nu arată cu adevărat cazul interesant în care a ratat cel mai mult.
Dacă codul dvs. nu are nevoie într-adevăr date
după if
, atunci nu trebuie să utilizați if let
, doar testați dacă expresia este nil
(notă, cod simplificat la sintaxa Swift3-ish pentru relevanță și concizie):
if UserDefaults.standard.objectForKey("first\_launch\_date") == nil {
UserDefaults.standard.set(date, forKey: "first\_launch\_date")
}
Dar presupunând că codul dvs. dorește să utilizați date
urmând if
(altfel de ce i-ați da un nume), atunci aveți nevoie de ceva puțin mai incomod, care se termină cu ceva în cazul if
la urma urmei:
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")
}
Cazul care dezamăgește cu adevărat totuși, eu sunt când folosesc if let
într-un lanț de else if
. Adesea (aproape jumătate din timp?) Logica lanțului de condiții dorește să testeze o serie de negative care se termină cu celălalt caz fiind singura condiție pozitivă. Cu toate acestea, dacă una dintre condiții necesită un if let
, atunci ești obligat să exprimi logica ca un test pentru pozitiv, cazul else fiind negativ.
Exemplu în pseudocod:
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
}
Dacă implementarea acestui lucru în swift implică desfacerea unui opțional în timpul testului de analiză, cum ar fi if let result = parse()
atunci tu Trebuie să deformez logica de la fail-fail-success la fail-success-fail. Exemplu cu un pseudocod mai rapid:
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
}
Da. În mod potențial, un if not let
ar permite logica originală:
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
}
Cineva ar trebui să scrie o propunere pentru o evoluție rapidă.
Răspuns
- Înscrieți-vă pentru un cont de dezvoltator Apple gratuit
- Înțelegeți începând de astăzi (4 iunie 2016) Nu există tutoriale pentru Swift 3.0 deoarece acesta va fi dezvăluit la WWDC săptămâna viitoare. Vor dura cel puțin 3 luni pentru ca autorii să obțină cărți noi și tutoriale pentru Swift 3.0. Excepția va fi Erica Sadun, care este foarte sârguincioasă și proactivă în a-și aduce cărțile la cea mai recentă versiune Swift.
- {Nou} Începând de astăzi (13 iunie 2016) Apple a anunțat Playgrounds pentru iPAD, care arată ca o modalitate foarte bună pentru începători de a învăța Swift. ȘI, Apple are o nouă ieșire de cărți electronice numită, „Dezvoltarea aplicațiilor cu Swift\_, care este o altă resursă bună pentru începătorii de limbi străine.
- Evitați orice în Swift 1.0 și stați departe de majoritatea informații despre 2.0 și 2.1 și încercați să găsiți informații din surse la versiunea 2.2 a Swift sau mai bine. De asemenea, încercați să evitați orice material cu cele mai recente informații înainte de noiembrie 2015. Acest lucru se va schimba în câteva luni după ce Swift 3.0 este mai disponibil. Există unele modificări semnificative ale sintaxei și bibliotecii și încercarea de a urma tutoriale scrise în versiuni mai vechi ar putea fi dificilă.
- Obțineți o copie a manualelor Apple Swift din iBooks. Acestea ar trebui să fie primele actualizate cu Swift 3.0
- Răsfoiți manualele respective
- Dacă ați programat în alte limbi înainte, acordați o atenție suplimentară construcțiilor specifice Swift ca Apple și 3rd Party exemple de software le vor folosi probabil.
- enumerări
- opționale
- verificarea erorilor
- închideri (sintaxa și concursul pot fi greu de înțeles)
- structuri vs. clase vs. protocoale vs. enumerări
- proiectare orientată spre protocol
- Numărare referințe
- șiruri
- generice
- Biblioteca Swift
- aspecte funcționale ale limbajului (legate de închideri și bibliotecă)
- Răsfoiți și / sau cumpărați 1-2 cărți electronice (sau cărți fizice) de pe Swift. Există mai multe cărți bune.
- Există mult mai multe informații și tutoriale scrise în care vă așteptați să mergeți la programator iOS vs. Mac OS
- Stabiliți dacă sunteți mai interesat de jocuri sau de productivitate și concentrați-vă mai mult pe una dintre acestea. Există mai multe cărți și tutoriale scrise pentru eliminarea jocului și, în anumite privințe, cred că jocurile sunt un loc mai ușor de învățat.
- Dacă nu ați scris niciodată nicio aplicație Apple, sugestia mea este să învățați Swift fără să vă faceți griji. multe despre Objective-C. Declinare de responsabilitate: Nu-mi place foarte mult Objective-C. Dacă aveți un cod moștenit în Objective-C, pur și simplu mergeți și aflați despre legătura și inter-folosirea Objective-C și Swift. Tutorialele Swift vă vor oferi baza a ceea ce trebuie să știți și nu o puteți scăpa total, deoarece multe / majoritatea bibliotecii / cadrelor Cocoa sunt scrise în Objective-C.
- Dacă aveți un card de credit sau pay pal, înscrie-te la Lynda. com timp de o lună gratuit și vizionați toate videoclipurile pe care le puteți de la Simon Allardice și alții pe Swift (și concepte generale de programare dacă aveți nevoie și de asta.)
- Faceți același lucru la Pluralsight. com .
- Răsfoiți site-ul Apple Deve pentru toate documentele de referință și modul în care accesați acest lucru din x-Code. Sperăm că ați mai folosit X-Code. Dacă nu, tutorialele ar fi trebuit să ofere suficiente informații pentru a vă ajuta să mergeți. Acest lucru este important.
- Accesați RayWenderlich. com și vizionați toate videoclipurile și cărțile electronice Swift pe care le puteți. Pentru a vedea toate cărțile, vă puteți înscrie și / sau achiziționa materialele de acolo. Demandați-vă că sunteți bine odihniți și efectuați singur tutorialele . Aceasta este cheia.
- Urmăriți videoclipurile anterioare Apple WWDC pe Swift. Citiți manualele Apple Swift mai atent.
- Încercați să scrieți propria aplicație. Aceasta vă va arăta unde aveți locuri pe care trebuie să le examinați sau să învățați mai bine.
- Încercați să urmați cursul iTunes University / Stanford despre dezvoltarea iOS în Swift. Vezi dacă poți ține pasul. Acesta nu este un curs pentru începători contrar a ceea ce vă vor spune alții.
- Am urmărit multe, multe tutoriale video diferite pe Youtube. Pentru mine, în cea mai mare parte, singurul lucru bun la ei este că sunt liberi. Odată ce le comparați cu tutorialele pe care le-am enumerat mai devreme, vă veți întreba de ce vă pierdeați timpul cu ele. Există excepții, dar veți petrece mult timp pierzându-l uitându-vă prin ele. Apreciez faptul că oamenii vor să își creeze propriile videoclipuri. Am încercat chiar și asta o dată. Așa că știu câtă energie depun profesioniștii pentru a face lucrurile clare și ușor de înțeles.
- Acum, după ce ați disipat lucrurile gratuite de pe YouTube, urmăriți câteva dintre aceste videoclipuri și vedeți dacă ajută la completarea unor informații lipsă . Este bine să aveți perspective alternative.
- Abonați-vă la buletinele informative online Swift. RayWenderlich are o listă bună pentru început.
- Citiți câteva dintre postările mele și ale celorlalți despre acest subiect. Probabil că trebuie să vă dați seama cum să îmbinați întrebările / răspunsurile.