(iphone) Как создать UIImage из imageRef, который создается в фоновом потоке? - PullRequest
4 голосов
/ 22 апреля 2011

UIImage * img = [UIImage imageWithCGImage: imageRef];
может быть сделано только в основном потоке .. ба ..

Теперь все мои функции создания изображений, которые должны запускаться в фоновом потоке, должны быть изменены.
Вопрос в том, как мне изменить вышеприведенную строку.

Обычные шаги по созданию изображения были такими, как показано ниже.

CGImageRef imageRef = CGBitmapContextCreateImage(context);
UIImage* img = [UIImage imageWithCGImage: imageRef];
CGImageRelease(imageRef);

CGContextRelease(context);

return img;

Если бы executeSelector вернул значение, это было бы довольно просто.
Но это не так. Поскольку это кажется довольно распространенным требованием, мне интересно, есть ли предпочтительная практика сделать это.

Спасибо

1 Ответ

4 голосов
/ 22 апреля 2011

UIImage * img = [UIImage imageWithCGImage: imageRef];может быть сделано только в основном потоке .. bah ..

Только если вы хотите использовать устройства iOS 3.x.Начиная с iOS 4, UIImage стал поточно-ориентированным.Если вам нужно запустить на iOS 3, типичным поведением будет передача вашего CGImageRef обратно в основной поток и запуск метода imageWithCGImage.

...