Herausfinden der Syntax für Grand Central Dispatch in Swift

8

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!

    
Sparklellama 19.10.2014, 04:51
quelle

2 Antworten

17

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:

%Vor%     
Mike S 19.10.2014, 16:06
quelle
0

Sie haben die abschließende Paranthesis und die geschweiften Klammern verlegt:

%Vor%     
zisoft 19.10.2014 07:31
quelle