Sobes.tech
Back to questions
Junior — Middle
81

Можешь привести пример, когда объект класса создается на стеке вместо кучи?

Companies where asked
GreenData

Answer from AI

sobes.tech AI

В iOS объекты классов обычно создаются в куче, так как классы — ссылочные типы. Однако, если использовать структуры (struct), которые являются значимыми типами, они создаются на стеке.

Пример:

struct Point {
    var x: Int
    var y: Int
}

func createPoint() {
    let p = Point(x: 10, y: 20) // создается на стеке
    print(p)
}

Здесь Point — структура, и переменная p создается на стеке. Для классов же, например:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

func createPerson() {
    let person = Person(name: "John") // объект в куче, ссылка на него на стеке
    print(person.name)
}

Таким образом, объекты классов создаются в куче, а структуры — на стеке.