Crear tarea ASYNC en Swift 2

Quiero mostrar a los usuarios la location actual en el map y sé que no es una tarea instantánea. Quiero llamar a mi function showCurrentLocation () en la tarea ASYNC. Estaba tratando de aprender los cierres de llamadas pero no pude entender cómo puedo crear la tarea ASYNC para esto. Sé que esta no es una mejor plantilla de preguntas para stackoverflow, pero no sé cómo puedo preguntar de manera diferente. Gracias por cualquier ayuda. Tener una buena encoding.

En el pasado, he creado una class llamada AsyncTask con fines de uso como la que describiste aquí.

Últimamente lo he actualizado por veloz 3

Tiene 2 types generics:

BGParam : el tipo de parámetro enviado a la tarea en ejecución.

BGResult : el tipo de resultado del cómputo de background.

Si uno de ellos (o ambos) no es necesario, puede configurarlo como Opcional o simplemente ignorarlo.

En el ejemplo de código, remito las funciones showCurrentLocation() y getCurrentLocation() que mencionaste en OP y comentarios. BGParam está configurado en Int y BGResults está configurado en CLLocationCoordinate2D

 AsyncTask(backgroundTask: {(param:Int)->CLLocationCoordinate2D in print(param);//prints the Int value passed from .execute(1) return self.getCurrentLocation();//the function you mentioned in comment }, afterTask: {(coords)in //use latitude & longitude at UI-Main thread print("latitude: \(coords.latitude)"); print("latitude: \(coords.longitude)"); self.showCurrentLocation(coords);//function you mentioned in OP }).execute(1);//pass Int value 1 to backgroundTask 

Hay una tecnología llamada GCD (Grand Central Dispatch) que puede usar para realizar tales tareas.

 let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT dispatch_async(dispatch_get_global_queue(priority, 0)) { // do some task dispatch_async(dispatch_get_main_queue()) { // update some UI } }