Wie ändere ich einen Wert in einer Schließung oder erhalte mindestens Daten von einer Schließung in Swift? Ich habe eine globale Variable, die außerhalb einer Klasse deklariert wurde, und ich versuche, sie innerhalb eines Abschluss- oder Vervollständigungsblocks zu ändern; Es wird jedoch nicht geändert, und ich kann keine Daten aus einer Sperrung abrufen.Wie ändert man globale Variablen innerhalb von Schließungen in swift?
var someGlobalVariable = 0
class someClass{
dispatch_async(dispatch_get_main_queue(), {() -> Void in
someGlobalVarible += 1
})
}
print(someGlobalVariable) // returns 0 and not 1
}
Es ist besser, wenn Sie ein Beispiel veröffentlichen, das nicht für Sie funktioniert, weil Sie externe Variablen ändern können, ohne etwas Besonderes zu tun. Sie könnten Retain-Zyklen haben, aber das ist eine andere Frage. –
Dieses Beispiel kompiliert nicht. – zneak
Das ist kein gültiger Swift-Code. Ich empfehle nicht, Code zu probieren, den du nicht verstehst (und das ist schrecklich kaputt), lies das Swift-Buch von Apple, bevor du etwas anderes tust. –