Ich habe den folgenden Code:
%Vor%Es wird jedoch nicht kompiliert. Der innere Aufruf von dispatch_async gibt den folgenden Kompilierungsfehler zurück:
%Vor%Ich kann mir nicht vorstellen, wie ich das schreiben soll, damit es so funktioniert, wie ich es in Objective C konnte. Danke für die Ideen!
Verschlüsse in Swift können implizite Renditen haben, wenn sie nur einen einzigen Ausdruck enthalten (siehe: Implizite Rückgabe von Single-Expression Closures ). Ihre innere Schließung hat höchstwahrscheinlich einen einzelnen Ausdruck, um die Benutzeroberfläche zu aktualisieren. Der Compiler verwendet das Ergebnis dieses Ausdrucks als Rückgabewert für den Abschluss, wodurch die Signatur des Abschlusses nicht mit der Signatur dispatch_async
will übereinstimmt. Da dispatch_async
eine Schließung wünscht, die ()
(oder Void
) zurückgibt, besteht das Problem darin, am Ende der Schließung eine explizite return
hinzuzufügen:
Tags und Links ios grand-central-dispatch swift