iOS - Swift - функция, которая возвращает асинхронно полученное значение

Итак, у меня есть объект PFFile из Parse, и я пытаюсь создать функцию, которая получает представление UIImage этого PFFile и возвращает его. Что-то вроде:

func imageFromFile(file: PFFile) -> UIImage? {
    var image: UIImage?

    file.getDataInBackgroundWithBlock() { (data: NSData?, error: NSError?) -> Void in
        if error != nil {
            image = UIImage(data: data!)
        }
    }

    return image
}

Однако проблема здесь очевидна. Я собираюсь получить nil каждый раз, потому что функция getDataInBackroundWithBlock является асинхронной. Есть ли способ подождать, пока UIImage не будет получен, прежде чем возвращается переменная изображения? Я не знаю, является ли использование синхронного getData () эффективным способом в этом случае.

Ответы на вопрос(3)

Ваш ответ на вопрос