Junior — Middle
Kannst du ein Beispiel nennen, wann ein Klassenobjekt auf dem Stack statt auf dem Heap erstellt wird?
sobes.tech KI
Antwort von AI
In iOS werden Objekte von Klassen in der Regel im Heap erstellt, da Klassen Referenztypen sind. Wenn jedoch Strukturen (struct) verwendet werden, die Werttypen sind, werden sie auf dem Stack erstellt.
Beispiel:
struct Point {
var x: Int
var y: Int
}
func createPoint() {
let p = Point(x: 10, y: 20) // auf dem Stack erstellt
print(p)
}
Hier ist Point eine Struktur, und die Variable p wird auf dem Stack erstellt. Für Klassen, zum Beispiel:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "John") // Objekt im Heap, Referenz darauf auf dem Stack
print(person.name)
}
Daher werden Klassenobjekte im Heap erstellt, während Strukturen auf dem Stack.