Mejor respuesta
No siempre puedes usar guard
porque eso exige una salida anticipada. No hay una construcción if let
negada, sin embargo, su fragmento de código no muestra el caso interesante en el que más se pierde.
Si su código realmente no necesita date
después de if
, entonces no es necesario usar if let
, solo prueba si la expresión es nil
(nota, código simplificado a la sintaxis Swift3-ish para mayor relevancia y brevedad):
if UserDefaults.standard.objectForKey("first\_launch\_date") == nil {
UserDefaults.standard.set(date, forKey: "first\_launch\_date")
}
Pero asumiendo que su código quiere para usar date
después de if
(de lo contrario, ¿por qué le daría un nombre), entonces necesita algo un poco más incómodo, que termina con algo en el if
caso después de todo:
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")
}
El caso que realmente decepciona yo, sin embargo, es cuando uso if let
en una cadena de else if
. A menudo (¿cerca de la mitad de las veces?) La lógica de la cadena de condiciones quiere probar una serie de negativas y el otro caso es la única condición positiva. Sin embargo, si una de las condiciones requiere un if let
, entonces se ve obligado a expresar la lógica como una prueba positiva, siendo el caso else el negativo.
Ejemplo en 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
}
Si implementar esto en Swift implica desenvolver un opcional durante la prueba de análisis, como if let result = parse()
entonces tú tengo que deformar la lógica desde el fracaso-fracaso-éxito hasta el fracaso-éxito-fracaso. Ejemplo con un pseudocódigo más 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
}
¡Qué asco! Potencialmente, un if not let
permitiría la 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
}
Alguien debería escribir una propuesta para una rápida evolución.
Responder
- Regístrese para obtener una cuenta de desarrollador de Apple gratuita
- Comprenda a partir de hoy (4 de junio de 2016) No hay tutoriales para Swift 3.0, ya que se dará a conocer en la WWDC la próxima semana. Los autores tardarán al menos 3 meses en preparar nuevos libros y tutoriales para Swift 3.0. La excepción será Erica Sadun, que es muy diligente y proactiva en actualizar sus libros a la última versión de Swift.
- {Nuevo} A partir de hoy (13 de junio de 2016) Apple ha anunciado Playgrounds para el iPad, que parece una muy buena forma para que los principiantes aprendan Swift. TAMBIÉN, Apple tiene un nuevo libro electrónico llamado \_Desarrollo de aplicaciones con Swift\_, que es otro buen recurso para el principiante total del lenguaje.
- Evite cualquier cosa en Swift 1.0 y manténgase alejado de la mayoría información en 2.0 y 2.1 e intente encontrar información de fuentes en la versión 2.2 de Swift o mejor. Además, trate de evitar cualquier material con la información más reciente antes de noviembre de 2015. Esto cambiará unos meses después de que Swift 3.0 esté más disponible. Hay algunos cambios importantes en la sintaxis y la biblioteca y tratar de seguir los tutoriales escritos en versiones anteriores puede resultar difícil.
- Obtenga una copia de los manuales Swift de Apple en iBooks. Estos deberían ser los primeros en actualizarse con Swift 3.0
- Examinar esos manuales
- Si ha programado en otros idiomas antes, preste más atención a las construcciones específicas de Swift como Apple y terceros Es probable que los ejemplos de software los utilicen.
- enumeraciones
- opcionales
- comprobación de errores
- cierres (la sintaxis y la concentración pueden ser difíciles de comprender)
- estructuras frente a clases frente a protocolos frente a enumeraciones
- diseño orientado al protocolo
- Recuento de referencias
- cadenas
- genéricos
- Biblioteca Swift
- Aspectos funcionales del idioma (relacionados con los cierres y la biblioteca)
- Navegue y / o compre 1 o 2 libros electrónicos (o libros físicos) en Swift. Hay varios libros buenos.
- Hay mucha más información y tutoriales escritos esperando que el programador iOS o Mac OS
- Determina si estás más interesado en los juegos o la productividad. y concéntrate más en uno de esos. Hay varios libros y tutoriales escritos para la fuga del juego y, de alguna manera, creo que los juegos son un lugar más fácil de aprender.
- Si nunca ha escrito ninguna aplicación de Apple, mi sugerencia es que aprenda Swift sin preocuparse demasiado. mucho sobre Objective-C. Descargo de responsabilidad: No me gusta mucho Objective-C. Si tiene un código heredado en Objective-C, por supuesto, vaya y aprenda sobre la vinculación e interacción de Objective-C y Swift. Los tutoriales de Swift le proporcionarán la base de lo que necesita saber y no podrá escapar por completo porque muchas / la mayoría de bibliotecas / marcos de Cocoa están escritos en Objective-C.
- Si tiene una tarjeta de crédito o pay pal, regístrese en Lynda. com durante un mes gratis y mira todos los videos que puedas de Simon Allardice y otros en Swift (y conceptos generales de programación si los necesitas también).
- Haz lo mismo en Pluralsight. com .
- Explore el sitio de Apple Deve para ver todos los documentos de referencia y cómo acceder a ellos desde x-Code. Con suerte, ha utilizado X-Code antes. Si no es así, los tutoriales deberían haberle proporcionado suficiente información para comenzar. Esto es importante.
- Vaya a RayWenderlich. com y vea todos los videos y libros electrónicos de Swift que pueda. Para ver todos los libros, puede registrarse y / o comprar los materiales allí. Asegúrese de que ha descansado bien y haga los tutoriales usted mismo . Esto es clave.
- Vea los últimos videos de la WWDC de Apple en Swift. Lea los manuales de Apple Swift con más atención.
- Intente escribir su propia aplicación. Esto le mostrará dónde tiene los lugares que necesita para revisar o aprender mejor.
- Intente seguir el curso de iTunes University / Stanford sobre desarrollo de iOS en Swift. Vea si puede mantenerse al día. Este no es un curso para principiantes al contrario de lo que otros te dirán.
- He visto muchos, muchos videos tutoriales diferentes en Youtube. Para mí, en su mayor parte, lo único bueno de ellos es que son gratuitos. Una vez que los compare con los tutoriales que he enumerado anteriormente, se preguntará por qué estaba perdiendo el tiempo con ellos. Hay excepciones, pero pasará mucho tiempo perdiéndola revisándolas. Aprecio que la gente quiera crear sus propios videos. Incluso probé esto una vez. Así que sé cuánta energía pusieron los profesionales para dejar las cosas claras y comprensibles.
- Ahora, habiendo analizado el material gratuito de Youtube, mire algunos de esos videos y vea si ayudan a completar la información que falta o no. . Es bueno tener perspectivas alternativas.
- Suscríbase a los boletines informativos en línea de Swift. RayWenderlich tiene una buena lista para comenzar.
- Lea algunas de mis publicaciones y de otras personas sobre este tema. Probablemente necesite descubrir cómo combinar preguntas / respuestas.