Я создаю маленькие мозаичные изображения, которые будут храниться на диске и отображаться для пользователя. Вот мой текущий процесс для этого:
- Создайте viewcontroller, который представляет интерфейс, который я хочу показать на экране
- Получить представление из viewcontroller и визуализировать с него изображение
- Сохраните его на диск и позже отобразите на экране
У меня сбой при попытке доступа к представлению viewcontroller. Когда я попытался исследовать это онлайн, я получил противоречивые результаты о том, безопасно ли создавать представление в фоновом режиме. Я читаю, что вызов UIGraphicsGetCurrentContext должен быть потокобезопасным, но, возможно, не обращаясь к UIView в фоновом потоке? Я пишу приложение для iOS 4 и выше. Вот код, который я использую (плитка - это viewcontroller):
CGSize size = CGSizeMake(20.0f, 30.0f);
UIGraphicsBeginImageContext(size);
[tile.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Сбой происходит при попытке доступа к свойству .view на плитке (EXC_BAD_ACCESS). Весь смысл в том, чтобы визуализировать вид на фоне, чтобы предотвратить блокировку пользовательского интерфейса, потому что есть много плиток для обработки.
Есть ли безопасный способ сделать это?