Artículos
-
Generales
Inicialización I en Swift: init, parámetros, convenience init y las dos fases
Swift obliga a que todas las propiedades tengan valor antes de usar un objeto. Aprende a declarar init con parámetros etiquetados, el memberwise initializer de structs, la diferencia entre designated y convenience initializers, y las dos fases de inicialización en clases con herencia.
-
Generales
Inicialización II en Swift: failable init, required init e inicialización en herencia
Aprende a usar init? e init! en Swift cuando la inicialización puede fallar. Cubre required init, herencia automática de inicializadores, override init y cómo posponer trabajo costoso con lazy.
-
Generales
Desinicialización en Swift: deinit y gestión de recursos antes de la liberación
Aprende a usar deinit en Swift para liberar recursos antes de que ARC destruya una instancia de clase: cierre de FileHandle, observadores de NotificationCenter, descriptores POSIX y orden de llamada en herencia. Solo las clases tienen deinit, no los structs.
-
Generales
Optional binding en Swift: if let, guard let, while let y el nuevo if let taquigráfico
Aprende optional binding en Swift con ejemplos reales: if let, guard let, while let y el shorthand de Swift 5.7. Cómo encadenar múltiples bindings, cuándo usar guard let frente a if let, y por qué evitar el forced unwrap.
-
Generales
Optional chaining en Swift: encadenar accesos opcionales sin if let anidados
Aprende a encadenar accesos opcionales en Swift con ?. sin if let anidados. Propiedades, métodos, subscripts y múltiples niveles: cuando cualquier eslabón es nil, el resultado es nil. Con ejemplos progresivos y los errores más comunes.
-
Generales
Manejo de errores en Swift: throws, try, catch y el protocolo Error
Aprende a gestionar errores en Swift con throws, try, catch y el protocolo Error. Cómo funcionan do-catch, try?, try! y rethrows con ejemplos reales de un modelo de pedidos.
-
Generales
Result
en Swift: cuándo usarlo en lugar de throws Result es el enum de Swift para representar éxito o error sin usar throws. Aprende cuándo Result es mejor que throws: closures asíncronas, callbacks de URLSession y ficheros, composición con map y flatMap.
-
Generales
Typed throws en Swift 6: errores con tipo concreto en lugar de any Error
Swift 6 introduce los typed throws (SE-0413): puedes declarar el tipo exacto de error que lanza una función. El bloque catch recibe el tipo directamente, sin cast manual. Incluye throws(Never), uso en genéricos y casos prácticos con código real.
-
Generales
defer en Swift: código que siempre se ejecuta al salir del scope
Aprende a usar defer en Swift para ejecutar código de limpieza al salir de un scope, sea por return, throw o fin de bloque. Con ejemplos reales de ficheros, locks, logging y SQLite.
-
Generales
async/await en Swift: cómo funcionan las funciones asíncronas
Aprende cómo funciona async/await en Swift desde la versión 5.5: cómo declarar funciones asíncronas con async throws, suspender sin bloquear el hilo con await, lanzar tareas en paralelo con async let y convertir callbacks antiguos con withCheckedContinuation.









