I would do something like: import Foundation
class Task { // Must be a class to prevent Swift copy semantics eliminating the result private static let queue = dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_HIGH, 0) private let group = dispatch_group_create() private var _result: String? init(name: String) { dispatch_group_async(group, Task.queue) { self._result = name // The asynchronous task! } } var result: String { // Provide safe access to result dispatch_group_wait(group, DISPATCH_TIME_FOREVER) // Block until task finished return _result! } } var tasks = [String : Task]() let names = ["One", "Two"] names.forEach { tasks[$0] = Task(name: $0) } tasks.map { (_, task) in // Prints [One, Two] in playground task.result } On 11 December 2015 at 07:02, Dmitri Gribenko via swift-users < swift-users@swift.org> wrote: > On Thu, Dec 10, 2015 at 11:20 AM, Jens Alfke <j...@mooseyard.com> wrote: > > All we’re saying is that a class like this isn’t commonly useful enough > to go into a library. > > And too easy to misuse if provided. > > Dmitri > > -- > main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if > (j){printf("%d\n",i);}}} /*Dmitri Gribenko <griboz...@gmail.com>*/ > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users > -- -- Howard.
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users