Ich schreibe eine Swift-App und habe Probleme, eine Membervariable vom Typ int zu inkrementieren.
Ich habe die Variable mit
erstellt %Vor%dann in der Initialisierung initiierte ich es mit
%Vor%Später, wenn ich versuche, es in einer Funktion zu erhöhen, indem ich entweder
%Vor%oder
%Vor%Mir wird im ersten Fall gesagt, dass "++" nicht mit einem Argument vom Typ 'Int' "aufgerufen werden kann und im zweiten Fall, dass 'pos' in 'self' nicht zugewiesen werden kann."
Ich konnte keine Informationen zum Operator ++ finden, außer dass Sie benutzerdefinierte Versionen davon schreiben können, aber ich nehme an, dass es zumindest in den Integer-Typ eingebaut ist. Wenn das nicht stimmt, dann beantwortet das die Frage.
Die andere Frage, von der ich keine Ahnung habe.
Danke!
In
%Vor% index
ist eine Konstante gespeicherte Eigenschaft. Es kann ein Anfangswert gegeben werden
und kann nur während der Initialisierung geändert werden (Und es muss einen bestimmten Wert haben, wenn die Initialisierung abgeschlossen ist.)
Wenn Sie den Wert nach seiner Initialisierung ändern möchten dann müssen Sie es als Variable gespeicherte Eigenschaft deklarieren:
%Vor%Weitere Informationen finden Sie in "Eigenschaften" in der Swift-Dokumentation.
Beachten Sie, dass die ++
und --
in Swift 2.2 veraltet sind und entfernt wurden
in Swift 3 (wie in einem Kommentar erwähnt), also - wenn als Variable deklariert -
Sie erhöhen es mit
stattdessen.
Ich denke, du kannst das ändern
%Vor%in
%Vor% Da Sie den Wert von index
erhöhen, indem Sie seinen Wert ändern, müssen Sie ihn als var
deklarieren. Es ist auch erwähnenswert, dass let
verwendet wird, um eine Konstante zu deklarieren.
Dann können Sie self.index++
verwenden. Beachten Sie, dass zwischen self.index
und ++
kein Platz ist.
Hoffe, das wird helfen.