Что такое объект в Swift?

«Что такое объект в Swift?» — вопрос из категории ООП, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Объект — это экземпляр (instance) класса, структуры или перечисления в Swift. Он инкапсулирует данные (свойства) и поведение (методы).

Ключевые отличия по типам:

  • Класс (Class) — ссылочный тип (reference type). При присваивании или передаче копируется ссылка на один и тот же экземпляр в памяти.

    class Person {
        var name: String
        init(name: String) { self.name = name }
    }
    let person1 = Person(name: "Alex") // объект класса
    let person2 = person1 // person2 ссылается на тот же объект, что и person1
    person2.name = "Bob"
    print(person1.name) // "Bob" (изменение затронуло оба "указателя")
  • Структура (Struct) и Перечисление (Enum) — значимые типы (value types). При присваивании или передаче создается новая, независимая копия данных.

    struct Point {
        var x, y: Int
    }
    var point1 = Point(x: 10, y: 20) // объект структуры
    var point2 = point1 // Создается полная копия значений
    point2.x = 30
    print(point1.x) // 10 (оригинальный объект не изменился)
    enum Direction { case north, south }
    let dir = Direction.north // объект перечисления

Практическое правило (Swift): Используйте структуры по умолчанию для простых типов данных. Классы применяйте, когда требуется наследование или семантика разделяемого изменяемого состояния.