Biblioteca Padrão Swift (iOS/macOS): visão geral completa

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Biblioteca Padrão do Swift (iOS/macOS): visão geral completa



A biblioteca padrão do Swift é um conjunto fundamental de tipos, protocolos e funções incorporados diretamente na linguagem. Ela fornece a funcionalidade básica necessária para o desenvolvimento em iOS, macOS, watchOS e tvOS. Ao contrário dos frameworks Foundation ou UIKit, que fazem parte do SDK, a biblioteca padrão do Swift está disponível imediatamente sem importações adicionais. Neste artigo, analisaremos detalhadamente seus principais componentes, estruturas de dados, protocolos e mecanismos de gerenciamento de memória.



Tipos de dados e coleções principais



O Swift fornece coleções poderosas e type-safe, otimizadas para desempenho.



Arrays (Array)

Coleção ordenada de elementos do mesmo tipo. Suporta acesso aleatório e redimensionamento dinâmico.

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


Conjuntos (Set)

Coleção não ordenada de elementos únicos. Ideal para verificação de pertinência e operações 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}


Dicionários (Dictionary)

Coleção não ordenada de pares chave-valor. As chaves devem ser hashable (Hashable).

var capitals: [String: String] = ["Rússia": "Moscou", "EUA": "Washington"]capitals["Alemanha"] = "Berlim"if let russiaCapital = capitals["Rússia"] {    print(russiaCapital) // Moscou}


Protocolos: a base da versatilidade do Swift



A biblioteca padrão do Swift é construída sobre protocolos, que definem uma interface comum para diferentes tipos.



  • Equatable — permite comparar instâncias usando ==.
  • Hashable — necessário para usar o tipo como chave de dicionário ou elemento de conjunto.
  • Comparable — permite ordenar objetos (<, >, <=, >=).
  • Codable — combina Encodable e Decodable para serialização em JSON, Property List e outros formatos.
  • CaseIterable — fornece automaticamente uma coleção de todos os valores de uma enumeração.


Exemplo de uso do Codable

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

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

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


Gerenciamento de memória: ARC e Copy-on-Write



O Swift usa Automatic Reference Counting (ARC) para gerenciar a memória de tipos de referência (classes). Para structs e enumerações, aplica-se a semântica de cópia de valor, mas com a otimização Copy-on-Write (COW) para coleções.



var array1 = [1, 2, 3]var array2 = array1 // Enquanto não modificamos — dados compartilhadosarray2.append(4)    // Aqui ocorre a cópia real (COW)print(array1.count) // 3 — o array original não mudou


Modelos genéricos (Generics)



Generics permitem escrever funções e tipos flexíveis e reutilizáveis sem perda de desempenho.



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 opcionais (Optionals)



Trabalho seguro com valores ausentes — uma das principais características do Swift. Optionals previnem exceções de null-pointer.



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

Recommendations