Sobes.tech
Junior — Middle

Podes dar um exemplo de quando um objeto de classe é criado na pilha em vez de no heap?

sobes.tech IA

Resposta da IA

No iOS, os objetos de classes geralmente são criados no heap, pois as classes são tipos de referência. No entanto, se usar estruturas (struct), que são tipos de valor, eles são criados na pilha.

Exemplo:

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

func createPoint() {
    let p = Point(x: 10, y: 20) // criado na pilha
    print(p)
}

Aqui, Point é uma estrutura, e a variável p é criada na pilha. Para classes, por exemplo:

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

func createPerson() {
    let person = Person(name: "John") // objeto no heap, referência a ele na pilha
    print(person.name)
}

Assim, objetos de classes são criados no heap, enquanto estruturas na pilha.