MKMapSnapshotter занимает много времени для создания изображения

У меня есть рабочий MKMapSnapshotter в моем awakeWithContext, и я хочу установить его изображение для моего imageView.

Проблема в том, что MKMapSnapshotter должен работать медленно, и изображение не будет установлено. Только через одну или две секунды он создает снимок.

override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)

    var finalImage = UIImage()
    var snapshotterEnd = MKMapSnapshotter()
    snapshotterEnd.startWithCompletionHandler(){snapshot, error in

        finalImage = snapshot.image
    }
    imageView.setImage(finalImage)
}

Как я могу это исправить?

1 ответ

Решение

Вы должны убедиться, что обработчик завершения сам установит изображение.

snapshotterEnd.startWithCompletionHandler() { snapshot, error in
    imageView.setImage(snapshot.image)
}

Блок завершения задокументирован как работающий в главном потоке, поэтому вам не нужно использовать dispatch_async запустить его там.

Другие вопросы по тегам