Стандартная библиотека Swift (iOS/macOS): полный обзор

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Стандартная библиотека Swift (iOS/macOS): полный обзор

Стандартная библиотека Swift — это фундамент, на котором строится вся разработка под iOS, macOS, watchOS и tvOS. Она предоставляет разработчику набор базовых типов данных, протоколов, структур и функций, необходимых для повседневной работы. В отличие от сторонних фреймворков (например, UIKit или SwiftUI), стандартная библиотека является частью самого языка Swift и доступна в любом проекте без дополнительных импортов. В этой статье мы подробно разберем ключевые компоненты библиотеки.

Основные типы данных

Стандартная библиотека Swift включает в себя все примитивные типы, которые вы используете ежедневно:

  • Int, Float, Double — числовые типы с различной точностью.
  • Bool — логический тип (true/false).
  • String — работа с текстом.
  • Character — отдельный символ Unicode.

Пример работы со строками, который демонстрирует мощь встроенных методов:

import Foundation

let greeting = "Привет, Swift!"
let uppercased = greeting.uppercased()
let containsWord = greeting.contains("Swift")

print(uppercased) // "ПРИВЕТ, SWIFT!"
print(containsWord) // true

// Многострочные строки
let multiline = """
Это первая строка.
Это вторая строка.
"""
print(multiline)

Коллекции: Array, Set, Dictionary

Библиотека предоставляет три основных типа коллекций, оптимизированных под разные задачи:

  • Array — упорядоченный список элементов с доступом по индексу.
  • Set — неупорядоченная коллекция уникальных значений.
  • Dictionary — коллекция пар "ключ-значение".

Пример использования всех трех типов:

// Array
var numbers: [Int] = [1, 2, 3, 4, 5]
numbers.append(6)
numbers.sort(by: >)

// Set
var uniqueNames: Set<String> = ["Alice", "Bob", "Charlie"]
uniqueNames.insert("Alice") // Не добавится, так как уже есть

// Dictionary
var capitals: [String: String] = [
    "Россия": "Москва",
    "США": "Вашингтон"
]
capitals["Франция"] = "Париж"

print(numbers)      // [6, 5, 4, 3, 2, 1]
print(uniqueNames)  // ["Charlie", "Alice", "Bob"]
print(capitals)     // ["Россия": "Москва", "США": "Вашингтон", "Франция": "Париж"]

Опциональные типы (Optionals)

Одна из ключевых особенностей Swift — безопасная работа с отсутствующими значениями через Optional. Это позволяет избежать многих ошибок времени выполнения, характерных для других языков.

Основные способы работы с опционалами:

  • Optional Binding (if let, guard let)
  • Force Unwrapping (только если уверены в наличии значения)
  • Nil-Coalescing Operator (??)
  • Optional Chaining
var username: String? = "JohnDoe"

// Optional binding
if let name = username {
    print("Привет, \(name)!")
} else {
    print("Имя не задано")
}

// Nil-coalescing
let displayName = username ?? "Гость"
print(displayName)

// Optional chaining
let count = username?.count ?? 0
print("Длина имени: \(count)")

Протоколы и расширения

Стандартная библиотека Swift построена на протоколах. Основные протоколы, которые вы будете использовать:

  • Equatable — для сравнения объектов
  • Hashable — для использования в Set и Dictionary
  • Comparable — для сортировки
  • Codable — для сериализации/десериализации (JSON, Property List)
  • Collection — базовый протокол для всех коллекций

Пример реализации протокола Codable для работы с JSON:

struct User: Codable {
    let id: Int
    let name: String
    let email: String
}

let jsonString = """
{
    "id": 42,
    "name": "Алексей",
    "email": "alex@example.com"
}
"""

if let jsonData = jsonString.data(using: .utf8) {
    let decoder = JSONDecoder()
    if let user = try? decoder.decode(User.self, from: jsonData) {
        print("Пользователь: \(user.name), email: \(user.email)")
    }
}

Расширения (

Рекомендаций