Melhor resposta
Você nem sempre pode usar guard
porque isso exige uma saída antecipada. Não há nenhuma construção if let
negada, no entanto, seu snippet de código não mostra o caso interessante em que foi mais esquecido.
Se seu código realmente não precisa date
após if
, então você não precisa usar if let
, apenas teste se a expressão for nil
(observe, código simplificado para a sintaxe Swift3-ish para relevância e brevidade):
if UserDefaults.standard.objectForKey("first\_launch\_date") == nil {
UserDefaults.standard.set(date, forKey: "first\_launch\_date")
}
Mas supondo que seu código queira para usar date
seguindo o if
(caso contrário, por que você daria um nome), então você precisa de algo um pouco mais estranho, que termina com algo no if
caso afinal:
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")
}
O caso que realmente decepciona eu, no entanto, é ao usar if let
em uma cadeia de else if
. Freqüentemente (quase metade do tempo?), A lógica da cadeia de condições deseja testar uma série de negativos, terminando com o caso else sendo a única condição positiva. No entanto, se uma das condições exigir um if let
, você será forçado a expressar a lógica como um teste para positivo, com o caso de outro sendo negativo.
Exemplo em pseudocódigo:
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 implementar isso rapidamente envolver desembrulhar um opcional durante o teste de análise, como if let result = parse()
então você precisamos distorcer a lógica de falha-falha-sucesso para falha-sucesso-falha. Exemplo com algum pseudocódigo mais rápido:
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
}
Eca. Potencialmente, um if not let
permitiria a lógica 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
}
Alguém deveria escrever uma proposta para uma evolução rápida.
Resposta
- Inscreva-se para uma conta de desenvolvedor Apple gratuita
- Compreenda a partir de hoje (4 de junho de 2016) Não há tutoriais para Swift 3.0 como será revelado no WWDC na próxima semana. Os autores levarão pelo menos 3 meses para preparar novos livros e tutoriais para o Swift 3.0. A exceção será Erica Sadun, que é muito diligente e proativa em colocar seus livros na versão mais recente do Swift.
- {Novo} A partir de hoje (13 de junho de 2016), a Apple anunciou Playgrounds para o iPAD que parece ser uma boa maneira para iniciantes aprenderem Swift. TAMBÉM, a Apple lançou um novo e-book chamado \_App Development with Swift\_, que é outro bom recurso para o iniciante em idiomas.
- Evite qualquer coisa no Swift 1.0 e fique longe da maioria informações sobre 2.0 e 2.1 e tente encontrar informações de fontes na versão 2.2 do Swift ou superior. Além disso, tente evitar quaisquer materiais com informações mais recentes antes de novembro de 2015. Isso mudará alguns meses depois que o Swift 3.0 estiver mais disponível. Existem algumas alterações significativas de sintaxe e biblioteca, e tentar seguir tutoriais escritos em versões mais antigas pode ser difícil.
- Obtenha uma cópia dos manuais Swift da Apple no iBooks. Estes devem ser os primeiros atualizados com o Swift 3.0
- Navegue pelos manuais
- Se você já programou em outros idiomas antes, preste mais atenção às construções específicas do Swift como Apple e terceiros exemplos de software provavelmente os usarão.
- enumerações
- opcionais
- verificação de erros
- encerramentos (sintaxe e conc ato podem ser difíceis de entender)
- estruturas x classes x protocolos x enumerações
- design orientado a protocolo
- contagem de referências
- strings
- genéricos
- Biblioteca Swift
- aspectos funcionais da linguagem (relacionados a fechamentos e a biblioteca)
- Navegue e / ou compre 1–2 eBooks (ou livros físicos) em Swift. Existem vários livros bons.
- Existem muito mais informações e tutoriais escritos esperando que você vá programar iOS x Mac OS
- Determine se você está mais interessado em jogos ou produtividade e se concentrar mais em um deles. Existem vários livros e tutoriais escritos para a fuga de jogos e, de certa forma, acho que os jogos são um lugar mais fácil de aprender.
- Se você nunca escreveu nenhum aplicativo da Apple, minha sugestão é aprender Swift sem se preocupar muito muito sobre Objective-C. Aviso: Não gosto muito de Objective-C. Se você tem código legado em Objective-C, vá e aprenda sobre como fazer a ponte e interagir com Objective-C e Swift. Os Tutoriais Swift fornecerão a base do que você precisa saber e você não pode escapar totalmente porque muitas / muitas bibliotecas / frameworks Cocoa são todas escritas em Objective-C.
- Se você tiver um cartão de crédito ou pagador, inscreva-se em Lynda. com por um mês grátis e assista a todos os vídeos que puder de Simon Allardice e outros no Swift (e conceitos gerais de programação, se você precisar deles também.)
- Faça o mesmo em Pluralsight. com .
- Navegue no site Apple Deve para obter todos os documentos de referência e como você acessa a partir do x-Code. Esperançosamente, você já usou o X-Code antes. Caso contrário, os tutoriais devem ter fornecido informações suficientes para você começar. Isso é importante.
- Vá para RayWenderlich. com e assista a todos os vídeos e e-books do Swift que puder. Para ver todos os livros, você pode se inscrever e / ou adquirir os materiais lá. Certifique-se de que está bem descansado e faça você mesmo os tutoriais . Isso é fundamental.
- Assistir aos vídeos anteriores da Apple WWDC no Swift. Leia os manuais do Apple Swift com mais cuidado.
- Tente escrever seu próprio aplicativo. Isso mostrará onde você tem lugares que precisa revisar ou aprender melhor.
- Tente seguir o curso iTunes University / Stanford sobre desenvolvimento para iOS em Swift. Veja se você consegue acompanhar. Este não é um curso para iniciantes, ao contrário do que os outros dirão.
- Eu assisti a muitos, muitos tutoriais em vídeo diferentes no Youtube. Para mim, na maior parte, a única coisa boa sobre eles é que são gratuitos. Depois de compará-los com os tutoriais que listei anteriormente, você se perguntará por que estava perdendo tempo com eles. Existem exceções, mas você gastará muito tempo olhando através delas. Agradeço que as pessoas queiram criar seus próprios vídeos. Eu até tentei isso uma vez. Então, eu sei quanta energia os profissionais colocam para tornar as coisas claras e compreensíveis.
- Agora, depois de falar sobre as coisas gratuitas do Youtube, assista a alguns desses vídeos e veja se eles ajudam a preencher algumas informações ausentes . É bom ter perspectivas alternativas.
- Assine os boletins online Swift. RayWenderlich tem uma boa lista para começar.
- Leia alguns dos meus e de outros posts sobre este assunto. Provavelmente precisa descobrir como combinar perguntas / respostas.