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 () эффективным способом в этом случае.