Artículos

  • Generales 0

    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 0

    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 0

    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 0

    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 0

    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 0

    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 0

    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 0

    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.

  • Generales 0

    async let y TaskGroup en Swift: paralelismo real con structured concurrency

    Aprende a usar async let y TaskGroup en Swift para lanzar tareas en paralelo con structured concurrency. Cuándo elegir cada opción, cómo funciona la cancelación automática y el error más común: mutar estado compartido desde las tareas.

  • Generales 0

    Actors en Swift: aislamiento de datos entre tareas concurrentes

    Los actors en Swift son tipos de referencia cuyo estado el compilador protege frente a accesos concurrentes. Acceder desde fuera requiere await. Aprende a usar nonisolated, isolated parameters y cuándo elegir actor sobre Mutex.