2016-11-30 2 views
-1
let myclassInstance1 = myclass() 
let myclassInstance2 = myclassInstance1 
myclassInstance1.prop1 = 2 
myclassInstance2.prop1 = 3 

Dieser Code soll Fehler werfen, da ich die Konstante ändere.Verwirrung über konstante Klasseninstanz in Swift

Aber es ist nicht passiert.

Wie kommt es?

+1

Verwandte: [? Warum konstant Zwänge die Eigenschaft von einer Strukturinstanz aber nicht die Klasseninstanz] (http://stackoverflow.com/questions/38010936/why-constant-constraints-die-Eigenschaft-von-einer-Struktur-Instanz-aber-nicht-der-Klasse) – Hamish

Antwort

4

Die Klasseninstanz ist nicht konstant. Nur die Referenz ist.

Das heißt, Sie nicht dies tun:

let myClassInstance = MyClass() 
myClassInstance = MyClass() 
+0

Großartig! Antwort Herr! Vielen Dank –