Wie kann NSMutableArray Objekte mithilfe von let in swift hinzufügen?

8

Ich habe ein NSMutableArray in swift mit let und erstellt Wenn ich addObject im muableArray hinzufüge, fügt es es hinzu, obwohl ich Benutzte let , um eine Konstante zuzuweisen. Kann jemand erklären, wie let in swift funktioniert? Wenn Sie später keinen Wert hinzufügen können, wie lautet das Folgende Code funktioniert?

%Vor%     
user3812547 24.07.2015, 08:40
quelle

2 Antworten

9

Haftungsausschluss: Diese Antwort gilt nur für NS-Datenstrukturen, siehe @Eric Ds Antwort für das vollständige Bild

let bei Verwendung mit einer Klasse bedeutet nur, dass die Variable nicht geändert werden kann, zB in ein anderes Array. Wenn das Array nicht editierbar sein soll, verwenden Sie ein normales NSArray und kein veränderbares

%Vor%

Ich denke, Ihr Verständnis davon, was eine konstante Variable ist, ist ein bisschen zu streng.

    
Fonix 24.07.2015, 08:43
quelle
10

Klassen sind Referenztypen und NSMutableArray ist eine Klasse.

NSMutableArray von Foundation unterscheidet sich von Swift's Array: Letzteres ist ein -Werttyp .

Wenn Sie eine konstante NSMutableArray erstellen:

%Vor%

dann funktioniert das:

%Vor%

aber das nicht:

%Vor%

, weil Sie den Inhalt der Referenz ändern können, aber Sie können nicht ändern, was der Konstante zugewiesen ist.

Auf der anderen Seite, mit Swift's Array:

%Vor%

Die Konstante kann nicht geändert werden, da es sich um einen Wert und nicht um eine Referenz handelt.

%Vor%

Doc: Strukturen und Aufzählungen sind Werttypen und Klassen sind Referenztypen

    
Moritz 24.07.2015 08:55
quelle

Tags und Links