Swift alternative to performSelectorOnMainThread
This simple C-function: dispatch_async(dispatch_get_main_queue(), { // DO SOMETHING ON THE MAINTHREAD self.tableView.reloadData() }) What about launching your function with: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { loadAlbums() }) in viewDidLoad()?