Mam następujący kod:Zastanawianie się składnię Grand Central Dispatch w Swift
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
// Do stuff in the backgroud
dispatch_async(dispatch_get_main_queue()) {
// Do stuff on the UI thread
}
}
Jednak to nie skompilować. Wewnętrzna wywołanie dispatch_async zwraca następujący błąd kompilacji:
Cannot invoke 'init' with an argument list of type '(dispatch_queue_t!,() ->() -> $T3)'
I nie wydają się rysunek się, jak napisać to tak, że działa jak kiedyś, aby móc w Celu C. Dzięki za wszelkie pomysły!
nie mogę powiedzieć o zupełnie pewności nie wiedząc, co się wewnątrz zamknięcia, ale prawdopodobnie używasz opcji [Implicit Returns from Single-Expression Closures] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html#//apple_ref/doc/ uid/TP40014097-CH11-XID_157). Spróbuj umieścić wyraźne 'return' na końcu twojego wewnętrznego zamknięcia. –
Mike S, wydaje się, że zadziałało. Dzięki! Jeśli umieścisz to jako odpowiedź, mogę oznaczyć je jako poprawne. – Sparklellama