Artículos

  • Generales 0

    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 0

    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 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.