Стандартная библиотека 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 и DictionaryComparable— для сортировки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)")
}
}
Расширения (
Также в библиотеке
Boost.Filesystem для C++: полное руководство с примерами
CLI фреймворки для TypeScript: полный обзор и примеры использования
Elasticsearch клиент для Go (Golang): полное руководство по работе с ES