Biblioteca estándar de Swift (iOS/macOS): revisión completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Biblioteca Estándar de Swift (iOS/macOS): revisión completa



La biblioteca estándar de Swift es un conjunto fundamental de tipos, protocolos y funciones integrados directamente en el lenguaje. Proporciona la funcionalidad básica necesaria para el desarrollo en iOS, macOS, watchOS y tvOS. A diferencia de los frameworks Foundation o UIKit, que son parte del SDK, la biblioteca estándar de Swift está disponible de inmediato sin importaciones adicionales. En este artículo, analizaremos en detalle sus componentes clave, estructuras de datos, protocolos y mecanismos de gestión de memoria.



Tipos de datos y colecciones principales



Swift proporciona colecciones potentes y type-safe, optimizadas para el rendimiento.



Arrays (Array)

Colección ordenada de elementos del mismo tipo. Admite acceso aleatorio y cambio de tamaño dinámico.

var numbers: [Int] = [1, 2, 3]numbers.append(4)let first = numbers[0] // 1numbers.sort()


Sets (Set)

Colección no ordenada de elementos únicos. Ideal para verificar pertenencia y operaciones matemáticas.

let setA: Set<Int> = [1, 2, 3, 4]let setB: Set<Int> = [3, 4, 5, 6]let intersection = setA.intersection(setB) // {3, 4}let union = setA.union(setB) // {1, 2, 3, 4, 5, 6}


Diccionarios (Dictionary)

Colección no ordenada de pares clave-valor. Las claves deben ser hashables (Hashable).

var capitals: [String: String] = ["Rusia": "Moscú", "EE. UU.": "Washington"]capitals["Alemania"] = "Berlín"if let russiaCapital = capitals["Rusia"] {    print(russiaCapital) // Moscú}


Protocolos: la base de la versatilidad de Swift



La biblioteca estándar de Swift está construida sobre protocolos que definen una interfaz común para diferentes tipos.



  • Equatable — permite comparar instancias con ==.
  • Hashable — requerido para usar el tipo como clave de diccionario o elemento de set.
  • Comparable — permite ordenar objetos (<, >, <=, >=).
  • Codable — combina Encodable y Decodable para serialización en JSON, Property List y otros formatos.
  • CaseIterable — proporciona automáticamente una colección de todos los valores de una enumeración.


Ejemplo de uso de Codable

struct User: Codable {    let id: Int    let name: String    let isActive: Bool}

let json = """{ "id": 42, "name": "Iván", "isActive": true}""".data(using: .utf8)!

let decoder = JSONDecoder()if let user = try? decoder.decode(User.self, from: json) { print(user.name) // Iván}


Gestión de memoria: ARC y Copy-on-Write



Swift utiliza Automatic Reference Counting (ARC) para gestionar la memoria de tipos por referencia (clases). Para estructuras y enumeraciones se aplica la semántica de copia de valor, pero con la optimización Copy-on-Write (COW) para colecciones.



var array1 = [1, 2, 3]var array2 = array1 // Mientras no modifiquemos — datos compartidosarray2.append(4)    // Aquí ocurre la copia real (COW)print(array1.count) // 3 — el array original no ha cambiado


Genéricos (Generics)



Los genéricos permiten escribir funciones y tipos flexibles y reutilizables sin pérdida de rendimiento.



func swapTwoValues<T>(_ a: inout T, _ b: inout T) {    let temporaryA = a    a = b    b = temporaryA}

var x = 10var y = 20swapTwoValues(&x, &y) // x = 20, y = 10


Tipos opcionales (Optionals)



El manejo seguro de valores ausentes es una de las características clave de Swift. Los opcionales previenen excepciones de null-pointer.



var optionalString: String? = "Hola"// Optional bindingif let unwrapped = optional                    

Recommendations