Biblioteca estándar de Swift (iOS/macOS): guía completa
La biblioteca estándar de Swift es la base sobre la que se construye todo el desarrollo para iOS, macOS, watchOS y tvOS. Proporciona al desarrollador un conjunto de tipos de datos básicos, protocolos, estructuras y funciones necesarios para el trabajo diario. A diferencia de los frameworks de terceros (por ejemplo, UIKit o SwiftUI), la biblioteca estándar es parte del propio lenguaje Swift y está disponible en cualquier proyecto sin importaciones adicionales. En este artículo, analizaremos en detalle los componentes clave de la biblioteca.
Tipos de datos básicos
La biblioteca estándar de Swift incluye todos los tipos primitivos que usas a diario:
- Int, Float, Double — tipos numéricos con diferente precisión.
- Bool — tipo booleano (true/false).
- String — trabajo con texto.
- Character — carácter Unicode individual.
Ejemplo de trabajo con cadenas que demuestra el poder de los métodos integrados:
import Foundation
let greeting = "¡Hola, Swift!"let uppercased = greeting.uppercased()let containsWord = greeting.contains("Swift")
print(uppercased) // "¡HOLA, SWIFT!"print(containsWord) // true
// Cadenas multilínealet multiline = """Esta es la primera línea.Esta es la segunda línea."""print(multiline)Colecciones: Array, Set, Dictionary
La biblioteca proporciona tres tipos principales de colecciones, optimizadas para diferentes tareas:
- Array — lista ordenada de elementos con acceso por índice.
- Set — colección no ordenada de valores únicos.
- Dictionary — colección de pares "clave-valor".
Ejemplo de uso de los tres tipos:
// Arrayvar numbers: [Int] = [1, 2, 3, 4, 5]numbers.append(6)numbers.sort(by: >)
// Setvar uniqueNames: Set<String> = ["Alice", "Bob", "Charlie"]uniqueNames.insert("Alice") // No se añadirá porque ya existe
// Dictionaryvar capitals: [String: String] = [ "Rusia": "Moscú", "EE.UU.": "Washington"]capitals["Francia"] = "París"
print(numbers) // [6, 5, 4, 3, 2, 1]print(uniqueNames) // ["Charlie", "Alice", "Bob"]print(capitals) // ["Rusia": "Moscú", "EE.UU.": "Washington", "Francia": "París"]Tipos opcionales (Optionals)
Una de las características clave de Swift es el manejo seguro de valores ausentes a través de Optional. Esto permite evitar muchos errores en tiempo de ejecución típicos de otros lenguajes.
Formas principales de trabajar con opcionales:
- Optional Binding (
if let,guard let) - Force Unwrapping (solo si estás seguro de que hay un valor)
- Nil-Coalescing Operator (
??) - Optional Chaining
var username: String? = "JohnDoe"
// Optional bindingif let name = username { print("¡Hola, \\(name)!")} else { print("Nombre no especificado")}
// Nil-coalescinglet displayName = username ?? "Invitado"print(displayName)
// Optional chaininglet count = username?.count ?? 0print("Longitud del nombre: \\(count)")Protocolos y extensiones
La biblioteca estándar de Swift está construida sobre protocolos. Los protocolos principales que usarás:
Equatable— para comparar objetosHashable— para usar en Set y DictionaryComparable— para ordenarCodable— para serialización/deserialización (JSON, Property List)Collection— protocolo base para todas las colecciones
Ejemplo de implementación de prot
También en la biblioteca
Tonic para Rust: guía completa con ejemplos
Trabajo con S3 y almacenamiento en la nube en JavaScript (Node.js) — biblioteca @aws-sdk/client-s3
Cliente OAuth para Rust: biblioteca oauth2-rs