Sobes.tech
Junior — Middle

Poți oferi un exemplu când un obiect de clasă este creat pe stivă în loc de pe heap?

sobes.tech AI

Răspuns de la AI

În iOS, obiectele de clase sunt de obicei create în heap, deoarece clasele sunt tipuri de referință. Cu toate acestea, dacă folosiți structuri (struct), care sunt tipuri de valoare, acestea sunt create pe stivă.

Exemplu:

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

func createPoint() {
    let p = Point(x: 10, y: 20) // creat pe stivă
    print(p)
}

Aici, Point este o structură, iar variabila p este creată pe stivă. Pentru clase, de exemplu:

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

func createPerson() {
    let person = Person(name: "John") // obiect în heap, referință la el pe stivă
    print(person.name)
}

Astfel, obiectele de clasă sunt create în heap, iar structurile pe stivă.