nejlepší odpověď
guard
nelze vždy použít, protože to vyžaduje brzký odchod. Neexistuje žádný negovaný if let
konstrukt, ale váš fragment kódu ve skutečnosti neukáže zajímavý případ, kde nejvíce chyběl.
Pokud váš kód opravdu nepotřebuje date
po if
, nemusíte používat if let
, stačí otestovat pokud výraz je nil
(poznámka, kód zjednodušený na syntaxi Swift3-ish pro relevanci a stručnost):
if UserDefaults.standard.objectForKey("first\_launch\_date") == nil {
UserDefaults.standard.set(date, forKey: "first\_launch\_date")
}
Ale za předpokladu, že váš kód vyžaduje používat date
následující if
(jinak proč byste mu dali jméno), pak potřebujete něco trochu trapnějšího, což končí konec konců s něčím v případě if
:
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")
}
Případ, který opravdu zklamá Já však používám if let
v řetězci else if
. Logika řetězce podmínek chce často (téměř polovinu času) otestovat řadu negativů, které skončí tím, že případ else bude ten pozitivní. Pokud však jedna z podmínek vyžaduje if let
, jste nuceni vyjádřit logiku jako test pozitivního, přičemž případ else je negativní.
Příklad v pseudokódu:
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
}
Pokud implementace této funkce v rychlém zahrnuje rozbalení volitelného během testu analýzy, například if let result = parse()
, pak Musím pokřivit logiku od selhání-selhání-úspěchu k selhání-úspěchu-selhání. Příklad s rychlejším pseudokódem:
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
}
Fuj. Potenciálně if not let
by umožnil původní logiku:
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
}
Někdo by měl napsat návrh rychlé evoluce.
Odpověď
- Zaregistrujte si bezplatný účet vývojáře Apple
- Pochopte, jak dnes (4. června 2016) Pro Swift 3.0 neexistují žádné výukové programy, protože bude odhalen na WWDC příští týden. Autorům bude trvat minimálně 3 měsíce, než budou připraveny nové knihy a výukové programy pro Swift 3.0. Výjimkou bude Erica Sadun, která je velmi pilná a aktivní při přípravě svých knih na nejnovější verzi Swiftu.
- {Nové} Ode dneška (13. června 2016) společnost Apple oznámila hřiště pro iPAD, které vypadá jako velmi dobrý způsob, jak se začátečníci naučit Swift. TAKÉ Apple má novou eKnihu nazvanou \_App Development with Swift\_, která je dalším dobrým zdrojem pro úplného začátečníka v jazycích.
- Vyhněte se ničemu na Swift 1.0 a držte se dál od většiny informace o 2.0 a 2.1 a zkuste najít informace ze zdrojů ve verzi 2.2 Swift nebo lepší. Zkuste se také vyhnout materiálům s nejnovějšími informacemi před listopadem 2015. To se změní za několik měsíců poté, co bude Swift 3.0 k dispozici. Tam jsou některé významné změny syntaxe a knihovny a pokusit se sledovat výukové programy napsané ve starších verzích může být obtížné.
- Získejte kopii příruček Apple Swift z iBooks. Měly by být první aktualizované pomocí Swift 3.0
- Procházet si tyto manuály
- Pokud jste již dříve programovali v jiných jazycích, věnujte další pozornost konstrukcím specifickým pro Swift jako Apple a 3. strana softwarové příklady je pravděpodobně budou používat.
- výčty
- volitelné
- kontrola chyb
- uzávěry (syntaxe a konc. mohou být obtížně uchopitelné)
- struktury vs. třídy vs. protokoly vs. výčty
- návrh orientovaný na protokol
- počítání referencí
- řetězce
- obecné
- Knihovna Swift
- funkční aspekty jazyka (související s uzávěrkami a knihovnou)
- Procházejte a / nebo kupujte 1–2 eKnihy (nebo fyzické knihy) ve Swiftu. Existuje několik dobrých knih.
- Je napsáno mnohem více informací a návodů, které očekávají, že se chystáte programovat iOS vs. Mac OS
- Zjistěte, zda vás více zajímají hry nebo produktivita. a více se soustředit na jednu z nich. Existuje několik knih a tutoriálů napsaných pro vývoj her a v některých ohledech si myslím, že hry jsou snadnějším místem k učení.
- Pokud jste nikdy nenapsali žádné aplikace Apple, doporučuji naučit se Swift bez obav také hodně o Objective-C. Zřeknutí se odpovědnosti: Objective-C se mi intenzivně nelíbí. Pokud máte starší kód v Objective-C, ve všech ohledech se seznamte s přemostěním a vzájemným používáním Objective-C a Swift. Výukové programy Swift vám poskytnou základ toho, co potřebujete vědět, a zcela jim neuniknete, protože mnoho / většina kakaových knihoven / frameworků je napsána v Objective-C.
- Pokud máte kreditní kartu nebo zaplatit kamarádovi, zaregistruj se na Lyndě. com na jeden měsíc zdarma a sledujte všechna videa, která můžete od Simona Allardice a dalších na Swiftu (a obecných programovacích konceptů, pokud to také potřebujete.)
- Totéž udělejte na Pluralsight. com .
- Prohlédněte si web Apple Deve, kde najdete všechny referenční dokumenty a jak k nim přistupujete z kódu x-Code. Doufejme, že jste X-Code už dříve používali. Pokud tomu tak není, měly by výukové programy poskytnout dostatek informací, které vám pomohou vyrazit. To je důležité.
- Přejít na RayWenderlich. com a sledujte všechna videa a elektronické knihy Swift, které můžete. Chcete-li zobrazit všechny knihy, můžete se tam zaregistrovat a / nebo zakoupit materiály. Zajistěte, aby vám bylo dobře odpočinuto, a sami si cvičte návody . To je klíč.
- Podívejte se na minulá videa Apple WWDC na Swiftu. Přečtěte si pozorněji příručky k Apple Swift.
- Zkuste napsat vlastní aplikaci. Ukážete, kde máte místa, která potřebujete zkontrolovat nebo se lépe naučit.
- Zkuste sledovat kurz iTunes University / Stanford týkající se vývoje iOS ve Swiftu. Uvidíme, jestli vydržíš. Toto není kurz pro začátečníky, na rozdíl od toho, co vám řeknou ostatní.
- Sledoval jsem na Youtube mnoho a mnoho různých videonávodů. Pro mě je z velké části jediná dobrá věc to, že jsou zdarma. Jakmile je porovnáte s tutoriály, které jsem uvedl dříve, budete se divit, proč jste s nimi ztráceli čas. Existují výjimky, ale budete trávit spoustu času plýtváním tím, že budete procházet skrz ně. Oceňuji, že lidé chtějí vytvářet svá vlastní videa. Dokonce jsem to zkusil jednou. Takže vím, kolik energie profesionálové vložili do toho, aby věci byly srozumitelné a srozumitelné.
- Nyní, když jsem prodiskutoval věci na Youtube zdarma, podívejte se na několik těchto videí a zjistěte, zda pomáhají doplnit chybějící informace nebo ne . Je dobré mít alternativní pohledy.
- Přihlaste se k odběru online zpravodaje Swift. RayWenderlich má pro začátek dobrý seznam.
- Přečtěte si některé mé a další příspěvky týkající se tohoto tématu. Pravděpodobně bude třeba přijít na to, jak sloučit otázky / odpovědi.