Sobes.tech
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.