Comment annuler un ' if let ' vérification conditionnelle en langue Swift

Meilleure réponse

Vous ne pouvez pas toujours utiliser guard car cela nécessite une sortie anticipée. Il ny a pas de construction if let annulée, mais votre extrait de code ne montre pas vraiment le cas intéressant où il a le plus manqué.

Si votre code nen a vraiment pas besoin date après if, vous navez pas besoin dutiliser if let, il suffit de tester si lexpression est nil (note, code simplifié à la syntaxe Swift3-ish pour la pertinence et la brièveté):

if UserDefaults.standard.objectForKey("first\_launch\_date") == nil {

UserDefaults.standard.set(date, forKey: "first\_launch\_date")

}

Mais en supposant que votre code veut pour utiliser date en suivant le if (sinon pourquoi lui donneriez-vous un nom), alors vous avez besoin de quelque chose dun peu plus maladroit, qui se termine avec quelque chose dans le cas if après tout:

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")

}

Laffaire qui déçoit vraiment moi, cependant, lorsque jutilise if let dans une chaîne de else if. Souvent (près de la moitié du temps?) La logique de la chaîne de conditions veut tester une série de négatifs aboutissant à lautre cas étant la seule condition positive. Cependant, si lune des conditions nécessite un if let, alors vous êtes obligé dexprimer la logique comme un test de positif, lautre cas étant le négatif.

Exemple de pseudocode:

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

}

Si limplémentation de ceci dans swift implique de déballer une option pendant le test danalyse, comme if let result = parse() alors vous Je dois déformer la logique de léchec-échec-succès à léchec-succès-échec. Exemple avec un pseudocode plus rapide:

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

}

Beurk. Potentiellement, un if not let autoriserait la logique dorigine:

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

}

Quelquun devrait rédiger une proposition pour une évolution rapide.

Réponse

  1. Créez un compte de développeur Apple gratuit
  2. Comprenez à partir daujourdhui (4 juin 2016) Il ny a pas de didacticiel pour Swift 3.0 car il sera dévoilé à la WWDC la semaine prochaine. Il faudra au moins 3 mois aux auteurs pour préparer les nouveaux livres et didacticiels pour Swift 3.0. Lexception sera Erica Sadun qui est très diligente et proactive dans la mise à niveau de ses livres vers la dernière version de Swift.
  3. {Nouveau} À partir daujourdhui (13 juin 2016), Apple a annoncé Playgrounds pour liPAD, ce qui semble être un très bon moyen pour les débutants dapprendre Swift. ÉGALEMENT, Apple a sorti un nouvel eBook appelé \_Développement dapplications avec Swift\_ qui est une autre bonne ressource pour tous les débutants en langue.
  4. Évitez quoi que ce soit sur Swift 1.0 et restez à lécart de la plupart informations sur 2.0 et 2.1 et essayez de trouver des informations à partir de sources à la version 2.2 de Swift ou supérieure. Aussi, essayez déviter tout matériel avec les dernières informations avant novembre 2015. Cela changera dans quelques mois après que Swift 3.0 sera plus disponible. Il y a quelques modifications importantes de la syntaxe et de la bibliothèque et il peut être difficile dessayer de suivre les didacticiels écrits dans les anciennes versions.
  5. Obtenez une copie des manuels Swift dApple sur iBooks. Celles-ci devraient être les premières mises à jour avec Swift 3.0
  6. Parcourez ces manuels
  7. Si vous avez déjà programmé dans dautres langues, faites plus attention aux constructions spécifiques à Swift en tant quApple et tiers des exemples de logiciels les utiliseront probablement.
  8. énumérations
  9. optionnelles
  10. vérification des erreurs
  11. fermetures (la syntaxe et la concision peuvent être difficiles à comprendre)
  12. structures vs classes vs protocoles vs énumérations
  13. conception orientée protocole
  14. comptage de références
  15. chaînes
  16. génériques
  17. Bibliothèque Swift
  18. aspects fonctionnels de la langue (liés aux fermetures et à la bibliothèque)
  19. Parcourir et / ou acheter 1 à 2 livres électroniques (ou livres physiques) sur Swift. Il existe plusieurs bons livres.
  20. Il y a beaucoup plus dinformations et de didacticiels écrits en attendant que vous allez programmer iOS contre Mac OS
  21. Déterminez si vous êtes plus intéressé par les jeux ou la productivité et concentrez-vous davantage sur lun dentre eux. Il existe plusieurs livres et didacticiels écrits pour lélopement des jeux et, à certains égards, je pense que les jeux sont un endroit plus facile à apprendre.
  22. Si vous navez jamais écrit dapplications Apple, ma suggestion est dapprendre Swift sans vous inquiéter aussi beaucoup sur Objective-C. Clause de non-responsabilité: Je naime vraiment pas Objective-C. Si vous avez du code hérité en Objective-C, apprenez-en plus sur le pontage et linter-utilisation dObjective-C et de Swift. Les tutoriels Swift fourniront la base de ce que vous devez savoir et vous ny échapperez pas totalement car la plupart / la plupart des bibliothèques / frameworks Cocoa sont tous écrits en Objective-C.
  23. Si vous avez une carte de crédit ou paypal, inscrivez-vous à Lynda. com pendant un mois gratuit et regardez toutes les vidéos que vous pouvez de Simon Allardice et dautres sur Swift (et des concepts de programmation généraux si vous en avez besoin aussi.)
  24. Faites de même à Pluralsight. com .
  25. Parcourez le site Apple Deve pour tous les documents de référence et comment y accéder à partir de x-Code. Jespère que vous avez déjà utilisé X-Code. Sinon, les didacticiels devraient avoir fourni suffisamment dinformations pour vous permettre de démarrer. Cest important.
  26. Accédez à RayWenderlich. com et regardez toutes les vidéos et livres électroniques Swift que vous pouvez. Pour voir tous les livres, vous pouvez vous inscrire et / ou acheter le matériel là-bas. Faites valoir que vous êtes bien reposé et faites les tutoriels vous-même . Cest la clé.
  27. Regardez les dernières vidéos Apple WWDC sur Swift. Lisez plus attentivement les manuels Apple Swift.
  28. Essayez de rédiger votre propre application. Cela montrera où vous avez des endroits que vous devez revoir ou mieux apprendre.
  29. Essayez de suivre le cours iTunes University / Stanford sur le développement iOS dans Swift. Voyez si vous pouvez suivre. Ce nest pas un cours pour débutants contrairement à ce que dautres vous diront.
  30. Jai regardé de très nombreux didacticiels vidéo sur Youtube. Pour moi, pour la plupart, la seule bonne chose à leur sujet est quils sont gratuits. Une fois que vous les comparerez avec les didacticiels que jai énumérés précédemment, vous vous demanderez pourquoi vous perdiez votre temps avec eux. Il y a des exceptions, mais vous passerez beaucoup de temps à le perdre à les parcourir. Japprécie que les gens veuillent créer leurs propres vidéos. Jai même essayé une fois. Je sais donc combien dénergie les professionnels consacrent à rendre les choses claires et compréhensibles.
  31. Maintenant, après avoir disséqué le contenu gratuit de Youtube, regardez quelques-unes de ces vidéos et voyez si elles aident à compléter certaines informations manquantes ou non . Il est bon davoir dautres perspectives.
  32. Abonnez-vous aux newsletters en ligne Swift. RayWenderlich a une bonne liste pour commencer.
  33. Lisez certains de mes articles et d’autres sur ce sujet. Vous devez probablement trouver comment fusionner les questions / réponses.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *