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ă.